Re: plotting missing values [message #86803 is a reply to message #86799] |
Wed, 04 December 2013 08:58   |
Paul Van Delst[1]
Messages: 1157 Registered: April 2002
|
Senior Member |
|
|
Hello,
On 12/04/13 11:22, David Fanning wrote:
> Paul van Delst writes:
>
>>> I'd have to have a look. Can you send me a file of the type you think
>>> doesn't work well with the software? I'll have a look and see how much
>>> time I think it will take to make the software compatible with the file.
>>
>> Done.
>
> The netCDF4 file you sent me can be browsed with the H5_Browser supplied
> with IDL. If the good folks at ExelisVis would give me the code for that
> browser, I'd fix it so that it worked more intuitively. ;-)
>
> So, I guess the question is, do we need a better HDF5/netCDF4 browser or
> do we just need a better way to get at the data in these files? I
> haven't yet looked at Mike Galloy's routines, but these are generally
> extremely reliable for these kinds of things.
Based on the to-and-fro about HDF5, I tried the following:
IDL> result=h5_parse('amsua_metop-a.SpcCoeff.nc',/read_data)
and bugger me if it didn't work, making all the groups accessible:
IDL> help, result
** Structure <1e95a58>, 14 tags, length=33952, data length=33548, refs=1:
_NAME STRING 'amsua_metop-a.SpcCoeff.nc'
_ICONTYPE STRING 'hdf'
_TYPE STRING 'GROUP'
_FILE STRING 'amsua_metop-a.SpcCoeff.nc'
_PATH STRING '/'
_COMMENT STRING ''
SPCCOEFF STRUCT -> <Anonymous> Array[1]
WRITE_MODULE_HISTORY
STRUCT -> <Anonymous> Array[1]
CREATION_DATE_AND_TIME
STRUCT -> <Anonymous> Array[1]
RELEASE STRUCT -> <Anonymous> Array[1]
VERSION STRUCT -> <Anonymous> Array[1]
TITLE STRUCT -> <Anonymous> Array[1]
HISTORY STRUCT -> <Anonymous> Array[1]
COMMENT STRUCT -> <Anonymous> Array[1]
IDL> help, result.spccoeff
** Structure <208a1e8>, 19 tags, length=33032, data length=32628, refs=2:
_NAME STRING 'spccoeff'
_ICONTYPE STRING ''
_TYPE STRING 'GROUP'
_FILE STRING 'amsua_metop-a.SpcCoeff.nc'
_PATH STRING '/'
_COMMENT STRING ''
BAND_C1 STRUCT -> <Anonymous> Array[1]
BAND_C2 STRUCT -> <Anonymous> Array[1]
CHANNEL_FLAG STRUCT -> <Anonymous> Array[1]
COSMIC_BACKGROUND_RADIANCE
STRUCT -> <Anonymous> Array[1]
FREQUENCY STRUCT -> <Anonymous> Array[1]
PLANCK_C1 STRUCT -> <Anonymous> Array[1]
PLANCK_C2 STRUCT -> <Anonymous> Array[1]
SENSOR_CHANNEL STRUCT -> <Anonymous> Array[1]
SOLAR_IRRADIANCE
STRUCT -> <Anonymous> Array[1]
WAVENUMBER STRUCT -> <Anonymous> Array[1]
ACCOEFF STRUCT -> <Anonymous> Array[1]
N_CHANNELS STRUCT -> <Anonymous> Array[1]
SENSORINFO STRUCT -> <Anonymous> Array[1]
IDL> help, result.spccoeff.accoeff
** Structure <1d538e8>, 13 tags, length=14608, data length=14424, refs=2:
_NAME STRING 'accoeff'
_ICONTYPE STRING ''
_TYPE STRING 'GROUP'
_FILE STRING 'amsua_metop-a.SpcCoeff.nc'
_PATH STRING '/spccoeff'
_COMMENT STRING ''
A_EARTH STRUCT -> <Anonymous> Array[1]
A_PLATFORM STRUCT -> <Anonymous> Array[1]
A_SPACE STRUCT -> <Anonymous> Array[1]
SENSOR_CHANNEL STRUCT -> <Anonymous> Array[1]
N_CHANNELS STRUCT -> <Anonymous> Array[1]
N_FOVS STRUCT -> <Anonymous> Array[1]
SENSORINFO STRUCT -> <Anonymous> Array[1]
IDL> help, result.spccoeff.accoeff.sensorinfo
** Structure <1e82768>, 20 tags, length=9976, data length=9876, refs=2:
_NAME STRING 'sensorinfo'
_ICONTYPE STRING ''
_TYPE STRING 'GROUP'
_FILE STRING 'amsua_metop-a.SpcCoeff.nc'
_PATH STRING '/spccoeff/accoeff'
_COMMENT STRING ''
NOISE STRUCT -> <Anonymous> Array[1]
POLARIZATION_TYPE
STRUCT -> <Anonymous> Array[1]
SATELLITE_NAME STRUCT -> <Anonymous> Array[1]
SENSOR_CHANNEL STRUCT -> <Anonymous> Array[1]
SENSOR_ID STRUCT -> <Anonymous> Array[1]
SENSOR_NAME STRUCT -> <Anonymous> Array[1]
SENSOR_TYPE STRUCT -> <Anonymous> Array[1]
USE_FLAG STRUCT -> <Anonymous> Array[1]
WMO_SATELLITE_ID
STRUCT -> <Anonymous> Array[1]
WMO_SENSOR_ID STRUCT -> <Anonymous> Array[1]
DL_STRLEN STRUCT -> <Anonymous> Array[1]
N_CHANNELS STRUCT -> <Anonymous> Array[1]
N_FOVS STRUCT -> <Anonymous> Array[1]
SL_STRLEN STRUCT -> <Anonymous> Array[1]
And the data is there:
IDL> help, result.spccoeff.frequency
** Structure <1ea1388>, 18 tags, length=856, data length=848, refs=2:
_NAME STRING 'Frequency'
_ICONTYPE STRING 'binary'
_TYPE STRING 'DATASET'
_FILE STRING 'amsua_metop-a.SpcCoeff.nc'
_PATH STRING '/spccoeff'
_DATA DOUBLE Array[15]
_NDIMENSIONS LONG 1
_DIMENSIONS ULONG64 Array[1]
_NELEMENTS ULONG64 15
_DATATYPE STRING 'H5T_FLOAT'
_STORAGESIZE ULONG 8
_PRECISION LONG 64
_SIGN STRING ''
LONG_NAME STRUCT -> <Anonymous> Array[1]
DESCRIPTION STRUCT -> <Anonymous> Array[1]
UNITS STRUCT -> <Anonymous> Array[1]
_FILLVALUE STRUCT -> <Anonymous> Array[1]
DIMENSION_LIST STRUCT -> <Anonymous> Array[1]
IDL> print, result.spccoeff.frequency._data
23.800904 31.400728 50.300069 52.799890
53.596155 54.400633 54.940002 55.499802
57.290327 57.290327 57.290327 57.290327
57.290327 57.290327 88.997000
Yay.
So I guess netcdf4 files are just hdf5 files with a fancier name?
cheers,
paulv
|
|
|