[gdal-dev] Reading Modis level1b HDF4 data

Martin Raspaud martin.raspaud at smhi.se
Fri Feb 26 04:18:18 EST 2010


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

I'm trying to access Modis data (Terra) with gdal through the python API.

I'm following the gdal tutorial http://www.gdal.org/gdal_tutorial.html, but get
stuck at the rasterband reading part, with an error:
Traceback (most recent call last):
  File "gdaltest.py", line 24, in <module>
    print 'Band Type=',gdal.GetDataTypeName(band.DataType)
AttributeError: 'NoneType' object has no attribute 'DataType'

which means that the line:
band = dataset.GetRasterBand(1)
did return None.

Does anyone have an idea of what is going on ?
I join the gdaltest.py and the dump of the file from gdalinfo (removed some
lengthy metadata).

Thanks,
Martin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJLh5HaAAoJEBdvyODiyJI4FoUH/jIbIM2s+rWq9V01CYRxjv+B
PsvKJwIIL2saJ/ozuGlg6K3VMofW4eRRgOq877S6nnuVFSn1Ex0LnL01TKJIqoQF
z9oOAY5knq/c2L37F2M1Y1ROg7hXyu0aTRsJD4+dkEBztu1DXSyC9j1ziYZYf52w
/F0rWAkUjo1z+VuLnAbuqMX/41aHSLQCh5ksMaTv7+aw1QebAwL05IaKAKlEEbLE
Mo8PpZfEl9NeoMyGkm8hK92dkpGxiFTozBmrGZy8zISmY5P3NpuUXDJGMQvX+OHY
3Hf+hHhYZhCXMVKNgM1ECs+SfFQFzegU9W+v5BFxL/VsuG3uwAhDJyhU/XuOcCY=
=UQkq
-----END PGP SIGNATURE-----
-------------- next part --------------
import gdal
from gdalconst import *

filename = "/local_disk/data/satellite/terra/MOD021KM.A2005161.0920.005.2005161194747.hdf"

dataset = gdal.Open( filename, GA_ReadOnly )
if dataset is None:
    print "Dataset is None"


print 'Driver: ', dataset.GetDriver().ShortName,'/', \
      dataset.GetDriver().LongName
print 'Size is ',dataset.RasterXSize,'x',dataset.RasterYSize, \
      'x',dataset.RasterCount
print 'Projection is ',dataset.GetProjection()

geotransform = dataset.GetGeoTransform()
if not geotransform is None:
    print 'Origin = (',geotransform[0], ',',geotransform[3],')'
    print 'Pixel Size = (',geotransform[1], ',',geotransform[5],')'

band = dataset.GetRasterBand(1)

print 'Band Type=',gdal.GetDataTypeName(band.DataType)

min = band.GetMinimum()
max = band.GetMaximum()
if min is None or max is None:
    (min,max) = band.ComputeRasterMinMax(1)
print 'Min=%.3f, Max=%.3f' % (min,max)
    
if band.GetOverviewCount() > 0:
    print 'Band has ', band.GetOverviewCount(), ' overviews.'

if not band.GetRasterColorTable() is None:
    print 'Band has a color table with ', \
          band.GetRasterColorTable().GetCount(), ' entries.'

scanline = band.ReadRaster( 0, 0, band.XSize, 1, \
                            band.XSize, 1, GDT_Float32 )
gdal.Close(dataset)
-------------- next part --------------
Driver: HDF4/Hierarchical Data Format Release 4
Files: MOD021KM.A2005161.0920.005.2005161194747.hdf
Size is 512, 512
Coordinate System is `'
Metadata:
  HDFEOSVersion=HDFEOS_V2.9
  HDFEOS_FractionalOffset_10*nscans_MODIS_SWATH_Type_L1B=0
  HDFEOS_FractionalOffset_Max_EV_frames_MODIS_SWATH_Type_L1B=0
  LOCALGRANULEID=MOD021KM.A2005161.0920.005.2005161194747.hdf
  PRODUCTIONDATETIME=2005-06-10T19:47:48.000Z
  DAYNIGHTFLAG=Day
  REPROCESSINGACTUAL=processed once
  REPROCESSINGPLANNED=further update is anticipated
  SCIENCEQUALITYFLAG=Not Investigated
  AUTOMATICQUALITYFLAGEXPLANATION=not being investigated
  AUTOMATICQUALITYFLAG=Suspect
  QAPERCENTMISSINGDATA=0
  QAPERCENTOUTOFBOUNDSDATA=52
  QAPERCENTINTERPOLATEDDATA=0
  PARAMETERNAME=EV_1KM_RefSB
  SCIENCEQUALITYFLAG=Not Investigated
  AUTOMATICQUALITYFLAGEXPLANATION=not being investigated
  AUTOMATICQUALITYFLAG=Suspect
  QAPERCENTMISSINGDATA=0
  QAPERCENTOUTOFBOUNDSDATA=0
  QAPERCENTINTERPOLATEDDATA=0
  PARAMETERNAME=EV_1KM_Emissive
  EQUATORCROSSINGDATE=2005-06-10
  EQUATORCROSSINGTIME=09:38:13.976074
  ORBITNUMBER=29140
  EQUATORCROSSINGLONGITUDE=12.7623657291106
  VERSIONID=5
  SHORTNAME=MOD021KM
  INPUTPOINTER=LGID:MOD01:005:MOD01.A2005161.0915.005.2005161191258.hdf, LGID:MOD01:005:MOD01.A2005161.0920.005.2005161191440.hdf, LGID:MOD01:005:MOD01.A2005161.0925.005.2005161191649.hdf, MOD02_Reflective_LUTs.hdf.V5.0.6.4.coeff, MOD02_Emissive_LUTs.hdf.V5.0.6.4.coeff, MOD02_QA_LUTs.hdf.V5.0.6.4.coeff
  GRINGPOINTLONGITUDE=8.7597011923161, 55.6532739676118, 40.0391675744443, 9.38789658628149
  GRINGPOINTLATITUDE=66.8481307216782, 60.1649488030506, 44.3272211294195, 48.4759872891678
  GRINGPOINTSEQUENCENO=1, 2, 3, 4
  EXCLUSIONGRINGFLAG=N
  RANGEENDINGDATE=2005-06-10
  RANGEENDINGTIME=09:25:00.000000
  RANGEBEGINNINGDATE=2005-06-10
  RANGEBEGINNINGTIME=09:20:00.000000
  PGEVERSION=5.0.6
  ANCILLARYINPUTPOINTER=LGID:MOD03:005:MOD03.A2005161.0920.005.2005161192012.hdf
  ANCILLARYINPUTTYPE=Geolocation
  ASSOCIATEDSENSORSHORTNAME=MODIS
  ASSOCIATEDPLATFORMSHORTNAME=Terra
  ASSOCIATEDINSTRUMENTSHORTNAME=MODIS
  AveragedBlackBodyTemperature= 290.02
  AveragedMirrorTemperature= 276.36
  AveragedFocalPlane1Temperature= 269.49
  AveragedFocalPlane2Temperature= 269.78
  AveragedFocalPlane3Temperature=  83.39
  AveragedFocalPlane4Temperature=  83.02
  CalibrationQuality=marginal
  MissionPhase=EXECUTION
  NadirPointing=Y
  NORTHBOUNDINGCOORDINATE=66.9024176306048
  SOUTHBOUNDINGCOORDINATE=44.4806525822938
  EASTBOUNDINGCOORDINATE=55.6517447686945
  WESTBOUNDINGCOORDINATE=9.37947978255603
  ALGORITHMPACKAGEACCEPTANCEDATE=1999-12-14
  ALGORITHMPACKAGEMATURITYCODE=OPERATIONAL
  ALGORITHMPACKAGENAME=MODIS Level 1B Algorithm Package
  ALGORITHMPACKAGEVERSION=5.0.6.4_Terra
  INSTRUMENTNAME=Moderate Resolution Imaging SpectroRadiometer
  PROCESSINGCENTER=GSFC
  DESCRREVISION=5.0
  PRODUCTIONHISTORY=PGE02:5.0.6.4;PGE01:5.0.2
  LONGNAME=MODIS/Terra Calibrated Radiances 5-Min L1B Swath 1km
  PROCESSINGENVIRONMENT=/usr/bsd/hostname 
  Number of Scans=204
  Number of Day mode scans=204
  Number of Night mode scans=0
  Incomplete Scans=0
  Max Earth View Frames=1354
  %Valid EV Observations=100, 99.21136, 99.99989, 99.99982, 99.99178, 99.99998, 99.92158, 77.74535, 50.97116, 41.75863, 37.40073, 33.14359, 24.75512, 14.11185, 26.32291, 8.996546, 5.195354, 5.656334, 96.05117, 100, 99.85711, 100, 99.93998, 99.96195, 99.94226, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100
  %Saturated EV Observations=0, 0.7886288, 9.955977e-05, 0.0001719669, 9.050887e-06, 0, 0, 22.14911, 48.40397, 58.16368, 62.59927, 66.85641, 75.24488, 85.88815, 73.67709, 91.00346, 94.80465, 94.34367, 3.94883, 0, 0.1428954, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  % L1A EV All Scan Data are Missing=0
  % L1A EV RSB DN Not in Day Mode=0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  Bit QA Flags Last Value=819400
  Bit QA Flags Change=8200
  Granule Average QA Values=290.0298, 290.0169, 290.044, 290.023, 290.0063, 289.9778, 290.0536, 290.0276, 290.0271, 289.9987, 289.9916, 289.9913, 269.4888, 269.7763, 83.38789, 83.01974, 276.3508, 276.3605, 277.0281, 275.5197, 276.6356, 275.4676, 274.5634, 268.8403, 265.752, 267.1087, 267.2303, 82.72014, 82.85756, 126.2144, 126.1309, 185.1862, 5.768203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  Electronics Redundancy Vector=22405973, 1048
  Electronics Configuration Change=0, 0
  Reflective LUT Serial Number and Date of Last Change=R090 2005:05:27:11:08
  Emissive LUT Serial Number and Date of Last Change=E082 2005:05:27:11:08
  QA LUT Serial Number and Date of Last Change=Q078 2005:05:27:11:08
  Focal Plane Set Point State=1
  Doors and Screens Configuration=224
  Reflective Bands With Bad Data=0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0
  Emissive Bands With Bad Data=0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  Noise in Black Body Thermistors=3, 2, 3, 2, 3, 2, 2, 3, 2, 2, 6, 2
  Noise in Average BB Temperature=2
  Noise in LWIR FPA Temperature=207
  Noise in MWIR FPA Temperature=18
  Noise in Scan Mirror Thermistor #1=63
  Noise in Scan Mirror Thermistor #2=2
  Noise in Scan Mirror Thermistor Average=9
  Noise in Instrument Temperature=6
  Noise in Cavity Temperature=3
  Noise in Temperature of NIR FPA=0
  Noise in Temperature of Vis FPA=0
  Dead Detector List=0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Subdatasets:
  SUBDATASET_1_NAME=HDF4_EOS:EOS_SWATH:"MOD021KM.A2005161.0920.005.2005161194747.hdf":MODIS_SWATH_Type_L1B:EV_1KM_RefSB
  SUBDATASET_1_DESC=[15x2040x1354] EV_1KM_RefSB MODIS_SWATH_Type_L1B (16-bit unsigned integer)
  SUBDATASET_2_NAME=HDF4_EOS:EOS_SWATH:"MOD021KM.A2005161.0920.005.2005161194747.hdf":MODIS_SWATH_Type_L1B:EV_1KM_RefSB_Uncert_Indexes
  SUBDATASET_2_DESC=[15x2040x1354] EV_1KM_RefSB_Uncert_Indexes MODIS_SWATH_Type_L1B (8-bit unsigned integer)
  SUBDATASET_3_NAME=HDF4_EOS:EOS_SWATH:"MOD021KM.A2005161.0920.005.2005161194747.hdf":MODIS_SWATH_Type_L1B:EV_1KM_Emissive
  SUBDATASET_3_DESC=[16x2040x1354] EV_1KM_Emissive MODIS_SWATH_Type_L1B (16-bit unsigned integer)
  SUBDATASET_4_NAME=HDF4_EOS:EOS_SWATH:"MOD021KM.A2005161.0920.005.2005161194747.hdf":MODIS_SWATH_Type_L1B:EV_1KM_Emissive_Uncert_Indexes
  SUBDATASET_4_DESC=[16x2040x1354] EV_1KM_Emissive_Uncert_Indexes MODIS_SWATH_Type_L1B (8-bit unsigned integer)
  SUBDATASET_5_NAME=HDF4_EOS:EOS_SWATH:"MOD021KM.A2005161.0920.005.2005161194747.hdf":MODIS_SWATH_Type_L1B:EV_250_Aggr1km_RefSB
  SUBDATASET_5_DESC=[2x2040x1354] EV_250_Aggr1km_RefSB MODIS_SWATH_Type_L1B (16-bit unsigned integer)
  SUBDATASET_6_NAME=HDF4_EOS:EOS_SWATH:"MOD021KM.A2005161.0920.005.2005161194747.hdf":MODIS_SWATH_Type_L1B:EV_250_Aggr1km_RefSB_Uncert_Indexes
  SUBDATASET_6_DESC=[2x2040x1354] EV_250_Aggr1km_RefSB_Uncert_Indexes MODIS_SWATH_Type_L1B (8-bit unsigned integer)
  SUBDATASET_7_NAME=HDF4_EOS:EOS_SWATH:"MOD021KM.A2005161.0920.005.2005161194747.hdf":MODIS_SWATH_Type_L1B:EV_250_Aggr1km_RefSB_Samples_Used
  SUBDATASET_7_DESC=[2x2040x1354] EV_250_Aggr1km_RefSB_Samples_Used MODIS_SWATH_Type_L1B (8-bit integer)
  SUBDATASET_8_NAME=HDF4_EOS:EOS_SWATH:"MOD021KM.A2005161.0920.005.2005161194747.hdf":MODIS_SWATH_Type_L1B:EV_500_Aggr1km_RefSB
  SUBDATASET_8_DESC=[5x2040x1354] EV_500_Aggr1km_RefSB MODIS_SWATH_Type_L1B (16-bit unsigned integer)
  SUBDATASET_9_NAME=HDF4_EOS:EOS_SWATH:"MOD021KM.A2005161.0920.005.2005161194747.hdf":MODIS_SWATH_Type_L1B:EV_500_Aggr1km_RefSB_Uncert_Indexes
  SUBDATASET_9_DESC=[5x2040x1354] EV_500_Aggr1km_RefSB_Uncert_Indexes MODIS_SWATH_Type_L1B (8-bit unsigned integer)
  SUBDATASET_10_NAME=HDF4_EOS:EOS_SWATH:"MOD021KM.A2005161.0920.005.2005161194747.hdf":MODIS_SWATH_Type_L1B:EV_500_Aggr1km_RefSB_Samples_Used
  SUBDATASET_10_DESC=[5x2040x1354] EV_500_Aggr1km_RefSB_Samples_Used MODIS_SWATH_Type_L1B (8-bit integer)
  SUBDATASET_11_NAME=HDF4_EOS:EOS_SWATH:"MOD021KM.A2005161.0920.005.2005161194747.hdf":MODIS_SWATH_Type_L1B:Height
  SUBDATASET_11_DESC=[408x271] Height MODIS_SWATH_Type_L1B (16-bit integer)
  SUBDATASET_12_NAME=HDF4_EOS:EOS_SWATH:"MOD021KM.A2005161.0920.005.2005161194747.hdf":MODIS_SWATH_Type_L1B:SensorZenith
  SUBDATASET_12_DESC=[408x271] SensorZenith MODIS_SWATH_Type_L1B (16-bit integer)
  SUBDATASET_13_NAME=HDF4_EOS:EOS_SWATH:"MOD021KM.A2005161.0920.005.2005161194747.hdf":MODIS_SWATH_Type_L1B:SensorAzimuth
  SUBDATASET_13_DESC=[408x271] SensorAzimuth MODIS_SWATH_Type_L1B (16-bit integer)
  SUBDATASET_14_NAME=HDF4_EOS:EOS_SWATH:"MOD021KM.A2005161.0920.005.2005161194747.hdf":MODIS_SWATH_Type_L1B:Range
  SUBDATASET_14_DESC=[408x271] Range MODIS_SWATH_Type_L1B (16-bit unsigned integer)
  SUBDATASET_15_NAME=HDF4_EOS:EOS_SWATH:"MOD021KM.A2005161.0920.005.2005161194747.hdf":MODIS_SWATH_Type_L1B:SolarZenith
  SUBDATASET_15_DESC=[408x271] SolarZenith MODIS_SWATH_Type_L1B (16-bit integer)
  SUBDATASET_16_NAME=HDF4_EOS:EOS_SWATH:"MOD021KM.A2005161.0920.005.2005161194747.hdf":MODIS_SWATH_Type_L1B:SolarAzimuth
  SUBDATASET_16_DESC=[408x271] SolarAzimuth MODIS_SWATH_Type_L1B (16-bit integer)
  SUBDATASET_17_NAME=HDF4_EOS:EOS_SWATH:"MOD021KM.A2005161.0920.005.2005161194747.hdf":MODIS_SWATH_Type_L1B:gflags
  SUBDATASET_17_DESC=[408x271] gflags MODIS_SWATH_Type_L1B (8-bit unsigned integer)
  SUBDATASET_18_NAME=HDF4_EOS:EOS_SWATH:"MOD021KM.A2005161.0920.005.2005161194747.hdf":MODIS_SWATH_Type_L1B:EV_Band26
  SUBDATASET_18_DESC=[2040x1354] EV_Band26 MODIS_SWATH_Type_L1B (16-bit unsigned integer)
  SUBDATASET_19_NAME=HDF4_EOS:EOS_SWATH:"MOD021KM.A2005161.0920.005.2005161194747.hdf":MODIS_SWATH_Type_L1B:EV_Band26_Uncert_Indexes
  SUBDATASET_19_DESC=[2040x1354] EV_Band26_Uncert_Indexes MODIS_SWATH_Type_L1B (8-bit unsigned integer)
Corner Coordinates:
Upper Left  (    0.0,    0.0)
Lower Left  (    0.0,  512.0)
Upper Right (  512.0,    0.0)
Lower Right (  512.0,  512.0)
Center      (  256.0,  256.0)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gdaltest.py.sig
Type: application/octet-stream
Size: 287 bytes
Desc: not available
Url : http://lists.osgeo.org/pipermail/gdal-dev/attachments/20100226/ab9ef32c/gdaltest.py-0001.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: moddump.sig
Type: application/octet-stream
Size: 287 bytes
Desc: not available
Url : http://lists.osgeo.org/pipermail/gdal-dev/attachments/20100226/ab9ef32c/moddump-0001.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: martin_raspaud.vcf
Type: text/x-vcard
Size: 259 bytes
Desc: not available
Url : http://lists.osgeo.org/pipermail/gdal-dev/attachments/20100226/ab9ef32c/martin_raspaud-0001.vcf


More information about the gdal-dev mailing list