[ncl-talk] Repost: Distortions while merging multiple modis hdf files
Dennis Shea
shea at ucar.edu
Tue Jan 2 19:28:54 MST 2018
[1] If you do:
%> ncl_filedump xMOD06_L2.A2011349.0550.006.2015056134430.hdf | less
You will see:
[snip]
Variable: f
Type: file
filename: xMOD06_L2.A2011349.0550.006.2015056134430
path: xMOD06_L2.A2011349.0550.006.2015056134430.hdf
file global attributes:
HDFEOSVersion : HDFEOS_V2.17
StructMetadata_0 : GROUP=SwathStructure
GROUP=SWATH_1
SwathName="mod06"
[snip]
So, these files contain satellite SWATH data
[2] For convenience, when HDFEOS_V2 data are encountered, it is convenient
to append the file suffix .he2 or, equivalently .hdfeos in the addfile(s)
function. This makes for a 'cleaner' look at the file. Further, in some
cases, value added information is added. [Side point: for hdf5-eos use .he5)
%> ncl_filedump xMOD06_L2.A2011349.0550.006.2015056134430.hdf.he2 | less
You will see a different look. More like a classic netCDF file. Value added
features include adding a 'coordinates' attribute to each variable.
[3] While the dimension sizes and dimension names are the same for each
swath file:
dimensions:
Cell_Across_Swath_5km_mod06 = 270
Cell_Along_Swath_5km_mod06 = 406
The locations [ Latitude (Latitude_mod06) and Longitude (Longitude_mod06)]
are different for each file.
[4] Your use of
f=addfiles(fils,"r")
ListSetType(f,"cat") ; this is the default
cl = f[:]->Cloud_Top_Pressure
is not appropriate. 'cat' mode is more appropriate when time(s) are
changing but the physical locations for each file are the same. In your
case, each swath has a different location imprint.
In your case "join" would be more appropriate.
f=addfiles(fils,"r")
ListSetType(f,"join") ; this is the default
cl = f[:]->Cloud_Top_Pressure
You will see a different look. More like a classic netCDF file. Value added
features include adding a 'coordinates' attribute to each variable.
[3] While the dimension sizes and dimension names are the same for each
swath file:
dimensions:
Cell_Across_Swath_5km_mod06 = 270
Cell_Along_Swath_5km_mod06 = 406
The locations [ Latitude (Latitude_mod06) and Longitude (Longitude_mod06)]
are different for each file.
[4] Your use of
f=addfiles(fils,"r")
ListSetType(f,"cat") ; this is the default
cl = f[:]->Cloud_Top_Pressure
is not appropriate. 'cat' mode is more appropriate when time(s) are
changing but the physical locations for each file are the same. In your
case, each swath has a different location imprint.
In your case "join" would be more appropriate.
f=addfiles(fils,"r")
ListSetType(f,"join") ; this is the default
cl = f[:]->Cloud_Top_Pressure
printVarSummary(cl) ; ALWAYS look at your data
Variable: cl
Type: short
Total Size: 657720 bytes
328860 values
Number of Dimensions: 3
Dimensions and sizes: [ncl_join | 3] x [Cell_Along_Swath_5km_mod06 | 406]
x [Cell_Across_Swath_5km_mod06 | 270]
scale_factor : 0.10000000
add_offset : 0
[snip]
[5] The user must unpack the variable of type short. You could use
https://www.ncl.ucar.edu/Document/Functions/Contributed/short2flt.shtml
======
Really, I would not use addfiles for your application. I would loop over
each file and overlay each swath file/swath individually. Then, advance the
frame.
See attached
======
Good Luck
On Sat, Dec 30, 2017 at 2:54 AM, Krishnakumar AP via ncl-talk <
ncl-talk at ucar.edu> wrote:
> Dear NCL Community,
>
> This is a re-post of my previous question, regarding distortions appear
> when merging multiple modis hdf files into a single plot.
> I am using NCL 6.4.0 and data used from Modis Cloud Products(06_L2)
>
> I have uploaded few of data to the ftp (ftp.cgd.ucar.edu), file names are
> xMOD06_L2.A2011349.0550.006.2015056134430.hdf
> xMOD06_L2.A2011349.0730.006.2015056133545.hdf
> xMOD06_L2.A2011349.0735.006.2015056132747.hdf
>
> NCL code,
>
> begin
>>
>> ;::::::::::::::::::::::::::::::::::
>> fils=systemfunc("ls ./xMOD06_L2*.hdf")
>> f=addfiles(fils,"r")
>> ;::::::::::::::::::::::::::::::::::
>>
>> ListSetType(f,"cat")
>> cl = f[:]->Cloud_Top_Pressure
>>
>> ;::::::::::::::::::::::::::::::::::
>>
>> printVarSummary(cl)
>>
>> cl at lat2d = f[:]->Latitude
>> cl at lon2d = f[:]->Longitude
>>
>> wks=gsn_open_wks("png","1_modis_ctp_349")
>> ;:::::::::::::::::::::::::::::::::::::::::::
>>
>> res=True ; plot mods
>> desired
>> res at gsnMaximize =True ; make plot large
>> res at cnLinesOn =False ; turn off contour lines
>> ;res at cnLineLabelsOn =True ; turn off contour line
>> labels
>> res at gsnSpreadColors =True ; use the entire color
>> spectrum
>> res at cnFillOn =True ; enable contour fill
>> res at gsnMaximize =True ; make plot large
>> res at mpGeophysicalLineThicknessF= 2. ; double the thickness of
>> geophysical boundaries
>> res at cnMissingValFillPattern = 0
>> res at cnFillMode = "RasterFill"
>>
>> ;::::::ZOOM:::::::::::;
>> res at mpMinLatF = 20
>> res at mpMaxLatF = 32
>> res at mpMinLonF = 68
>> res at mpMaxLonF = 95
>>
>> ;:::::::::::::Title&Plotting::::::::::::::::
>> res at tiMainString="Cloud Top Pressure" ; create title
>> plot=gsn_csm_contour_map_ce(wks,cl,res) ; plot on world map first
>> delete(res at tiMainString) ; delete
>> title for subsequent plots
>>
>> ;:::::::::::::Clean up resources used:::::::::::::::::::::
>> delete(plot)
>> delete(wks)
>> delete(res)
>> end
>>
>
> Individually each file plotted properly, but when it get merged,
> distortions or clippings occurred.
>
> As per Rick Brownrigg's suggestion, res at cnFillMode = "RasterFill" added,
> but could not get any better. Thanks for your kind response.
> I have attached the ncl_filedump of three example files, PrintVarSummary
> and the output.
>
> Please help me on this. Thanks in advance.
>
>
>
> --
>
> Best regards
> Krishnakumar.AP
> Research Fellow
> Banaras Hindu University, India.
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20180102/f1ec8d48/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: xMOD06.Krishnakumar.ncl
Type: application/octet-stream
Size: 3248 bytes
Desc: not available
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20180102/f1ec8d48/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 1_modis_ctp_349-1.png
Type: image/png
Size: 182259 bytes
Desc: not available
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20180102/f1ec8d48/attachment.png>
More information about the ncl-talk
mailing list