Opened 15 years ago
Closed 13 years ago
#2079 closed defect (fixed)
HDF4 driver can't read geolocation fields if the dimension map does not exist
Reported by: | dron | Owned by: | dron |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | GDAL_Raster | Version: | unspecified |
Severity: | normal | Keywords: | hdf |
Cc: | Mateusz Łoskot |
Description
Ivan Shmakov reported the problem with HDF-EOS file
http://theory.asu.ru/~ivan/modis/MOD07_L2.hdf that does not contain dimension map. It is not possible to read and properly assign geolocation fields without information on dimension mappings.
Here the full content of "SwathStructure" metadata group (note the empty "DimensionMap" object):
GROUP=SwathStructure GROUP=SWATH_1 SwathName="mod07" GROUP=Dimension OBJECT=Dimension_1 DimensionName="Cell_Across_Swath" Size=270 END_OBJECT=Dimension_1 OBJECT=Dimension_2 DimensionName="Cell_Along_Swath" Size=406 END_OBJECT=Dimension_2 OBJECT=Dimension_3 DimensionName="Band_Number" Size=12 END_OBJECT=Dimension_3 OBJECT=Dimension_4 DimensionName="Pressure_Level" Size=20 END_OBJECT=Dimension_4 OBJECT=Dimension_5 DimensionName="Output_Parameter" Size=10 END_OBJECT=Dimension_5 OBJECT=Dimension_6 DimensionName="Water_Vapor_QA_Bytes" Size=5 END_OBJECT=Dimension_6 END_GROUP=Dimension GROUP=DimensionMap END_GROUP=DimensionMap GROUP=IndexDimensionMap END_GROUP=IndexDimensionMap GROUP=GeoField OBJECT=GeoField_1 GeoFieldName="Latitude" DataType=DFNT_FLOAT32 DimList=("Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=GeoField_1 OBJECT=GeoField_2 GeoFieldName="Longitude" DataType=DFNT_FLOAT32 DimList=("Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=GeoField_2 END_GROUP=GeoField GROUP=DataField OBJECT=DataField_1 DataFieldName="Band_Number" DataType=DFNT_INT32 DimList=("Band_Number") END_OBJECT=DataField_1 OBJECT=DataField_2 DataFieldName="Pressure_Level" DataType=DFNT_FLOAT32 DimList=("Pressure_Level") END_OBJECT=DataField_2 OBJECT=DataField_3 DataFieldName="Scan_Start_Time" DataType=DFNT_FLOAT64 DimList=("Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_3 OBJECT=DataField_4 DataFieldName="Solar_Zenith" DataType=DFNT_INT16 DimList=("Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_4 OBJECT=DataField_5 DataFieldName="Solar_Azimuth" DataType=DFNT_INT16 DimList=("Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_5 OBJECT=DataField_6 DataFieldName="Sensor_Zenith" DataType=DFNT_INT16 DimList=("Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_6 OBJECT=DataField_7 DataFieldName="Sensor_Azimuth" DataType=DFNT_INT16 DimList=("Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_7 OBJECT=DataField_8 DataFieldName="Brightness_Temperature" DataType=DFNT_INT16 DimList=("Band_Number","Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_8 OBJECT=DataField_9 DataFieldName="Cloud_Mask" DataType=DFNT_INT8 DimList=("Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_9 OBJECT=DataField_10 DataFieldName="Surface_Temperature" DataType=DFNT_INT16 DimList=("Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_10 OBJECT=DataField_11 DataFieldName="Surface_Pressure" DataType=DFNT_INT16 DimList=("Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_11 OBJECT=DataField_12 DataFieldName="Surface_Elevation" DataType=DFNT_INT16 DimList=("Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_12 OBJECT=DataField_13 DataFieldName="Processing_Flag" DataType=DFNT_INT8 DimList=("Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_13 OBJECT=DataField_14 DataFieldName="Tropopause_Height" DataType=DFNT_INT16 DimList=("Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_14 OBJECT=DataField_15 DataFieldName="Guess_Temperature_Profile" DataType=DFNT_INT16 DimList=("Pressure_Level","Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_15 OBJECT=DataField_16 DataFieldName="Guess_Moisture_Profile" DataType=DFNT_INT16 DimList=("Pressure_Level","Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_16 OBJECT=DataField_17 DataFieldName="Retrieved_Temperature_Profile" DataType=DFNT_INT16 DimList=("Pressure_Level","Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_17 OBJECT=DataField_18 DataFieldName="Retrieved_Moisture_Profile" DataType=DFNT_INT16 DimList=("Pressure_Level","Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_18 OBJECT=DataField_19 DataFieldName="Retrieved_Height_Profile" DataType=DFNT_INT16 DimList=("Pressure_Level","Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_19 OBJECT=DataField_20 DataFieldName="Total_Ozone" DataType=DFNT_INT16 DimList=("Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_20 OBJECT=DataField_21 DataFieldName="Total_Totals" DataType=DFNT_INT16 DimList=("Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_21 OBJECT=DataField_22 DataFieldName="Lifted_Index" DataType=DFNT_INT16 DimList=("Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_22 OBJECT=DataField_23 DataFieldName="K_Index" DataType=DFNT_INT16 DimList=("Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_23 OBJECT=DataField_24 DataFieldName="Water_Vapor" DataType=DFNT_INT16 DimList=("Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_24 OBJECT=DataField_25 DataFieldName="Water_Vapor_Direct" DataType=DFNT_INT16 DimList=("Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_25 OBJECT=DataField_26 DataFieldName="Water_Vapor_Low" DataType=DFNT_INT16 DimList=("Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_26 OBJECT=DataField_27 DataFieldName="Water_Vapor_High" DataType=DFNT_INT16 DimList=("Cell_Along_Swath","Cell_Across_Swath") END_OBJECT=DataField_27 OBJECT=DataField_28 DataFieldName="Quality_Assurance" DataType=DFNT_INT8 DimList=("Cell_Along_Swath","Cell_Across_Swath","Output_Parameter") END_OBJECT=DataField_28 OBJECT=DataField_29 DataFieldName="Quality_Assurance_Infrared" DataType=DFNT_INT8 DimList=("Cell_Along_Swath","Cell_Across_Swath","Water_Vapor_QA_Bytes") END_OBJECT=DataField_29 END_GROUP=DataField GROUP=MergedFields END_GROUP=MergedFields END_GROUP=SWATH_1 END_GROUP=SwathStructure
Change History (4)
comment:1 by , 15 years ago
Cc: | added |
---|---|
Keywords: | hdf added |
comment:2 by , 15 years ago
Milestone: | 1.6.0 |
---|---|
Status: | new → assigned |
follow-up: 4 comment:3 by , 13 years ago
comment:4 by , 13 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
The HDF-EOS documentation states: "In cases where a data object and a geolocation object share the same dimension, the relationship can be assumed to be a one-to-one mapping, and there is no need to explicitly define it with a DimensionMap entry."
The problem should be fixed that way with r21121 in trunk.
Best regards, Andrey
has this issue being resolved? its been 2 years with no update