X
PrevPrev Go to previous topic
NextNext Go to next topic
Last Post 10 Mar 2016 09:59 AM by  anon
Error in writing NetCDF 4 data using USHORT data type
 1 Replies
Sort:
You are not authorized to post a reply.
Author Messages

anon



New Member


Posts:
New Member


--
10 Mar 2016 09:59 AM
    When I'm trying to write a USHORT array in a NetCDF 4 type, it always return an error for this line: NCDF_ATTPUT,id,'ot_anvilmean_brightness_temperature_difference','_FillValue',0,/USHORT The error message is % Type conversion error: Unable to convert given STRING to Unsigned Integer. Here is the code I use: PRO datatype_test ;---- nlon=4200 nlat=3640 timeunit='seconds since 2007-07-22 00:00:00' fname='testnc.nc' id = NCDF_CREATE(fname,/CLOBBER,/NETCDF4_FORMAT) tm_id = NCDF_DIMDEF(id,'time',24) vid = NCDF_VARDEF(id,'time',tm_id,/LONG) NCDF_ATTPUT,id,'time','long_name','time', /CHAR NCDF_ATTPUT,id,'time','standard_name','time', /CHAR NCDF_ATTPUT,id,'time','units',timeunit, /CHAR NCDF_ATTPUT,id,'time','_FillValue',-999,/LONG lat_id = NCDF_DIMDEF(id,'grid_lat',nlat) vid = NCDF_VARDEF(id,'grid_lat',lat_id,/FLOAT) NCDF_ATTPUT,id,'grid_lat','long_name','Gridded Latitude: center latitude of each box', /CHAR NCDF_ATTPUT,id,'grid_lat','standard_name','Latitude', /CHAR NCDF_ATTPUT,id,'grid_lat','units','degrees_north', /CHAR NCDF_ATTPUT,id,'grid_lat','_FillValue',FLOAT(-999),/FLOAT lon_id = NCDF_DIMDEF(id,'grid_lon',nlon) vid = NCDF_VARDEF(id,'grid_lon',lon_id,/FLOAT) NCDF_ATTPUT,id,'grid_lon','long_name','Gridded Longitude: center longitude of each box', /CHAR NCDF_ATTPUT,id,'grid_lon','standard_name','Longitude', /CHAR NCDF_ATTPUT,id,'grid_lon','units','degrees_east', /CHAR NCDF_ATTPUT,id,'grid_lon','_FillValue',FLOAT(-999),/FLOAT vid = NCDF_VARDEF(id,'ot_anvilmean_brightness_temperature_difference',[lon_id,lat_id,tm_id],/USHORT, CHUNK_DIMENSIONS=[250,250,1], GZIP=9) NCDF_ATTPUT,id,'ot_anvilmean_brightness_temperature_difference','long_name','Overshooting Top Minus Anvil Brightness Temperature Difference', /CHAR NCDF_ATTPUT,id,'ot_anvilmean_brightness_temperature_difference','standard_name','BT Difference of Overshooting Top and Anvil', /CHAR NCDF_ATTPUT,id,'ot_anvilmean_brightness_temperature_difference','units','degrees_Kelvin', /CHAR NCDF_ATTPUT,id,'ot_anvilmean_brightness_temperature_difference','valid_range',[1, 5000], /SHORT NCDF_ATTPUT,id,'ot_anvilmean_brightness_temperature_difference','scale_factor',0.01, /FLOAT NCDF_ATTPUT,id,'ot_anvilmean_brightness_temperature_difference','coordinates','time grid_lat grid_lon', /CHAR NCDF_ATTPUT,id,'ot_anvilmean_brightness_temperature_difference','_FillValue',0,/USHORT vid = NCDF_VARDEF(id,'ot_rating_visible',[lon_id,lat_id,tm_id],/UBYTE, CHUNK_DIMENSIONS=[250,250,1], GZIP=9) NCDF_ATTPUT,id,'ot_rating_visible','long_name','Visible Texture Detection Rating', /CHAR NCDF_ATTPUT,id,'ot_rating_visible','standard_name','Visible OT Rating', /CHAR NCDF_ATTPUT,id,'ot_rating_visible','units','count', /CHAR NCDF_ATTPUT,id,'ot_rating_visible','valid_range',[1, 255], /UBYTE NCDF_ATTPUT,id,'ot_rating_visible','coordinates','time grid_lat grid_lon', /CHAR NCDF_ATTPUT,id,'ot_rating_visible','_FillValue',0,/UBYTE NCDF_CONTROL, id, /ENDEF ;end def mode NCDF_CLOSE,id END The section of ot_rating_visible, which uses UBYTE type, works fine. I exhausted all my resources and couldn't figure it out. Does anyone know why it doesn't work? Thank you so much!

    Deleted User



    Basic Member


    Posts:143
    Basic Member


    --
    08 Apr 2016 10:57 AM
    I ran this code using IDL 8.5.1 on my Windows 7 64-bit system and it worked without issue. What version of IDL are you using? If you are using an older version of IDL, could you try upgrading and seeing if that helps with your issue? David Starbuck Harris Geospatial
    You are not authorized to post a reply.