<div dir="ltr"><div><div><div><div>You are welcome.  <br><br>It is best not to send direct emails. <br>Please send all emails to <a href="mailto:ncl-talk@ucar.edu" target="_blank">ncl-talk@ucar.edu</a> (cc'd here)<br></div><div>==============<br>The original script had the comment:<br></div><div></div><div><br>;---Manually add a _FillValue to lat/lon;<b> not sure why <br>;---_FillValue not associated with the variable</b><br>  lat2d@_FillValue = -9999.0<br>  lon2d@_FillValue = -9999.0<br> ;printMinMax(lat2d, 0)<br> ;printMinMax(lon2d, 0)<br></div><br>The comment should have been: <br><br>;---Manually add an _FillValue attribute to lat/lon<br><b>;---Not sure why but there is no _FillValue associated with the <br>;---'latitude' and 'longitude' variables on the file<br><br><br></b>Variable: lat2d   <===== printVarSummary(lat2d)<br>Type: float<br>Total Size: 1565536 bytes<br>            391384 values<br>Number of Dimensions: 2<br>Dimensions and sizes:   [DIM_000 | 406] x [DIM_001 | 964]<br>Coordinates: <br><b>Number Of Attributes: 2<br>  long_name :   Latitude of the center of the Earth based grid cell.<br>  units :       degrees_north<br><br></b><br><div>===<b><br></b></div>Note: There is no <b>_FillValue</b> attribute associated with lat2d ('latitude' on the file).<br>However, if you use 'printMinMax(lat2d,0)', you will see a minimum value of -9999.<br>This is why ncl-talk frequently states:<br><br>The most important rule in data processing is: <b>Look at your data<br><br></b>Using <b><br></b><b>printMinMax(lat2d,0) </b>yields <br><b></b>(0)     Latitude of the center of the Earth based grid cell. (degrees_north) : <b>min=-9999   max=83.632<br><br></b></div><div><b>Obviously, -9999.0 is not a valid latitude.<br></b></div><br></div><div>'We' had to manually attach the _FillValue in the script to assure correct results.<br><br></div><div>Cheers<br></div><div>D<br></div></div><div><div><b></b></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Dec 17, 2017 at 2:56 AM, 易路 <span dir="ltr"><<a href="mailto:dg1225033@smail.nju.edu.cn" target="_blank">dg1225033@smail.nju.edu.cn</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Dear Dennis Shea,</div><div> </div><div>Thanks very much for your such professional test to check whether the grids of SMAP L4 is rectilinear. This test result that the grids of SMAP L4 belongs to rectilinear solved my confusion why I could successfully extracte the regional data by coordinate subscripting once the soil moisture variable was given the coordinate.</div><div> </div><div>Looking into the matrix of la2d and lon2d of the SMAP L4, I found that although they are two dimensional, but acturally they can be recorded only in one dimension, since each row of lon2d is the same, and each column of lat2d is the same.  So, I wrote the script as follows to cordinate extract the regional data, and it worked. </div><span class=""><div> </div><div><div style="font-size:12.8px">     lat2d  = f->cell_lat</div></div><div>     lon2d = f->cell_lon</div></span><div>     soilMoisture = f->sm_rootzone</div><div>     soilMoisture!1="lat"<br>     soilMoisture!2="lon"<br>     soilMoisture&lon=lon2d(0,:)<br>     soilMoisture&lat=lat2d(:,0)</div><div>     soilMoisture_region = soilMoisture({maxLatBoundary:<wbr>minLatBoundary},{<wbr>minLonBoundary:maxLonBoundary}<wbr>)<br><br>It's very nice of you to correct my understanding about the relation ship between lat/lon dimension and the grid structure. Two dimensions are <font face="Arial"><b><i>'almost</i></b> <i><b>always</b></i>' but not absolutely curvilinear. This is very important for me!</font></div><div><font face="Arial"></font> </div><div><font face="Arial">Greatly appreciate for your precious attention, time and professional help.</font></div><div><font face="Arial"></font> </div><div><font face="Arial">with best regards!</font></div><div><font face="Arial">Sincerely, </font></div><span class=""><div><font face="Arial">Yi Lu </font></div><div><font face="Arial"></font> </div><div><u></u><div style="color:rgb(144,144,144);font-family:Arial Narrow;font-size:12px"><br><br><br><br></div><div style="color:rgb(0,0,0);font-family:Verdana;font-size:14px"><div style="overflow:hidden"><table class="m_-1248797774592653397preview_table"><tbody><tr><td valign="middle"><img id="m_-1248797774592653397preview_qrcode" src="https://exmail.qq.com/cgi-bin/setting_qrcode_card?action=qrcode_card&alias=dg1225033@smail.nju.edu.cn&key=33b1e5708e6a55b5"></td><td style="color:rgb(160,160,160);font-size:12px" valign="middle"><h4 class="m_-1248797774592653397name" style="margin:0px;color:rgb(0,0,0);line-height:28px;font-size:14px;font-weight:bold">易路</h4><p class="m_-1248797774592653397department" style="margin:0px">南大邮件系统/学生/博士生/12级博士生</p><p class="m_-1248797774592653397addr" style="margin:0px;color:rgb(160,160,160);line-height:22px"><a href="https://maps.google.com/?q=%E5%8D%97%E4%BA%AC%E5%B8%82%E6%B1%89%E5%8F%A3%E8%B7%AF22%E5%8F%B7&entry=gmail&source=g">南京市汉口路22号</a> </p></td></tr></tbody></table></div></div><u></u></div><div> </div></span><div><u></u><div> </div><div> </div><div style="color:rgb(0,0,0)"><div style="padding:2px 0px;font-family:Arial Narrow;font-size:12px">------------------ Original --<wbr>----------------</div><div style="background:rgb(239,239,239);padding:8px;font-size:12px"><div id="m_-1248797774592653397menu_sender"><b>From: </b> "Dennis Shea"<<a href="mailto:shea@ucar.edu" target="_blank">shea@ucar.edu</a>>;</div><div><b>Date: </b> Sat, Dec 16, 2017 01:03 AM</div><div><b>To: </b> "Mary Haley"<<a href="mailto:haley@ucar.edu" target="_blank">haley@ucar.edu</a>>; </div><div><b>Cc: </b> "易路"<<a href="mailto:dg1225033@smail.nju.edu.cn" target="_blank">dg1225033@smail.nju.edu.<wbr>cn</a>>; "ncl-talk"<<a href="mailto:ncl-talk@ucar.edu" target="_blank">ncl-talk@ucar.edu</a>>; </div><div><b>Subject: </b> Re: [ncl-talk] How to get the regional data of SMAP L4 *(HDF5 format)</div></div><div><div class="h5"><div> </div><div><div dir="ltr">What Mary wrote is generally correct ... Specifically:<br>========================<br><div class="gmail_default" style="font-size:small">You are trying to extract the region from your HDF5 data by using coordinate subscripting.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><b>Coordinate
 subscripting can only be done on rectilinear data</b>, <b>which is data 
represented by one-dimensional lat/lon arrays that are the same length 
as their corresponding dimension.</b></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Your
 data is likely curvilinear, which means your data is represented by 
two-dimensional lat/lon arrays. I say this because in your code it looks
 like you are extracting 2D lat/lon arrays:</div><span class="m_-1248797774592653397gmail-im"><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><div style="font-size:12.8px"><font face="monospace, monospace">  lat2d    = f->cell_lat</font></div><div style="font-size:12.8px"><font face="monospace, monospace">  lon2d    = f->cell_lon</font></div><div style="font-size:12.8px"><font face="monospace, monospace">  nSmapLat = dimsizes(lat2d(:,0))<br>  nSmapLon = dimsizes(lon2d(0,:))<br>===========================<br></font></div><div style="font-size:12.8px"><span style="font-family:arial,helvetica,sans-serif">Generally, when people see two dimensional latitude & longitude arrays ( cell_lat[*][*] and cell_lon[*][*] ), the grid structure is <b><i>'almost</i></b> <i><b>always</b></i>' curvilinear. However, I noted that the file is a <b>L4</b> file (<span class="m_-1248797774592653397gmail-im"><b>SMAP_L4</b>). </span>NASA Level-4 files are '<i><b>almost always</b></i>' on a 'nice' grid. <br><br></span></div><div style="font-size:12.8px"><span style="font-family:arial,helvetica,sans-serif">I used an undocumented and unsupported function of mine to test if the grid is a rectilinear grid despite the two-dimensional <span class="m_-1248797774592653397gmail-im">latitude & longitude arrays</span>. The function returns <b>True</b> if it is rectilinear and <b>False</b> otherwise.  <br><br></span></div><div style="font-size:12.8px"><font face="monospace, monospace">%> ncl tst.smap_rectilinear.ncl<br><br></font><br><div style="font-size:12.8px"><span style="font-family:arial,helvetica,sans-serif">The grid is rectilinear. Hence, you can use the approach you originally used. (It did need a few improvements :-) )<br></span></div><div style="font-size:12.8px"><font face="monospace, monospace"><br></font></div></div><div style="font-size:12.8px"><span style="font-family:arial,helvetica,sans-serif">%> ncl smap_regional.ncl_YiLu<br><br></span></div><div style="font-size:12.8px"><font face="monospace, monospace"><span style="font-family:arial,helvetica,sans-serif">Yes ... <font face="monospace, monospace">there are a fe locations over the water </font>but if you use a higher resolution map that will </span>not be the case.<br><br></font></div><div style="font-size:12.8px"><font face="monospace, monospace">Good luck<br></font></div></div></span></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Dec 14, 2017 at 9:21 AM, Mary Haley <span dir="ltr"><<a href="mailto:haley@ucar.edu" target="_blank">haley@ucar.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid"><div dir="ltr"><div class="gmail_default" style="font-size:small">Dear Yi Lu,</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">You are trying to extract the region from your HDF5 data by using coordinate subscripting.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Coordinate subscripting can only be done on rectilinear data, which is data represented by one-dimensional lat/lon arrays that are the same length as their corresponding dimension.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Your data is likely curvilinear, which means your data is represented by two-dimensional lat/lon arrays. I say this because in your code it looks like you are extracting 2D lat/lon arrays:</div><span><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><div style="font-size:12.8px"><font face="monospace, monospace">  lat2d    = f->cell_lat</font></div><div style="font-size:12.8px"><font face="monospace, monospace">  lon2d    = f->cell_lon</font></div><div style="font-size:12.8px"><font face="monospace, monospace">  nSmapLat = dimsizes(lat2d(:,0))<br>  nSmapLon = dimsizes(lon2d(0,:))</font></div></div><div class="gmail_default" style="font-size:small"><br></div></span><div class="gmail_default" style="font-size:small">Given this information, you cannot use coordinate subscripting to subscript your data.  Instead, you either need to use the function <b>getind_latlon2d</b> or <b>region_ind</b> to get the indexes of the area of interest.  For example:</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default"><div class="gmail_default" style="font-size:small"><font face="monospace, monospace">  lat_reg  = (/minLatBoundary,maxLatBoundar<wbr>y/)</font></div><div class="gmail_default" style="font-size:small"><font face="monospace, monospace">  lon_reg  = (/minLonBoundary,maxLonBoundar<wbr>y/)</font></div><div class="gmail_default" style="font-size:small"><font face="monospace, monospace">  ij       = getind_latlon2d(lat2d,lon2d,la<wbr>t_reg,lon_reg)</font></div><div class="gmail_default"><div class="gmail_default" style="font-size:small"><font face="monospace, monospace">  sm_regional = sm(ij(0,0):ij(1,0),ij(0,1):ij(<wbr>1,1))</font></div><div style="font-size:small"><br></div>Before plotting, you need to subset your lat2d / lon2d arrays using the same indexing:<br><br><font face="monospace, monospace"> res@sfXArray = lon2d(ij(0,0):ij(1,0),ij(0,1):<wbr>ij(1,1))<br> res@sfYArray = lat2d(ij(0,0):ij(1,0),ij(0,1):<wbr>ij(1,1))</font><div style="font-size:small"><br></div><div style="font-size:small">Please see our "Subsetting / extracting data based on lat / lon values" example page:</div><div style="font-size:small"><br></div><div><a href="http://www.ncl.ucar.edu/Applications/latlon_subset.shtml" target="_blank">http://www.ncl.ucar.edu/Applic<wbr>ations/latlon_subset.shtml</a><br></div><div><br></div><div>and in particular, look at examples latlon_subset_2.ncl and latlon_subset_3.ncl, which show the difference between getind_latlon2d and region_ind.</div><div><br></div><div>Also, to better understand the different types of data (rectilinear, curvilinear, unstructured) and how to plot them, see:</div><div><br></div><div><a href="http://www.ncl.ucar.edu/Applications/plot_data_on_map.shtml" target="_blank">http://www.ncl.ucar.edu/Applic<wbr>ations/plot_data_on_map.shtml</a><br></div><div><br></div><div>Good luck,</div><div><br></div><div>--Mary</div><div><br></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_-1248797774592653397h5">On Wed, Dec 13, 2017 at 7:05 PM, 易路 <span dir="ltr"><<a href="mailto:dg1225033@smail.nju.edu.cn" target="_blank">dg1225033@smail.nju.edu.cn</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid"><div><div class="m_-1248797774592653397h5"><div>Hi, all</div><div>Sorry to disturb you for technical help. </div><div> </div><div>I am trying to extract the regional data from the soil product SMAP L4 which is stored in the format of HDF5. I wrote the ncl script taking referecnce to the example listed on the web of <a href="http://www.ncl.ucar.edu/Applications/HDF.shtml" target="_blank">http://www.ncl.ucar.edu/Applic<wbr>ations/HDF.shtml</a>. But the extracted data were not in the demond region. So would you please help me to find the faults in my ncl script?  The main part of this script is as follow, and the detail information can be downloaded from the accessory. </div><div>********main part of the script *********</div><div><div> nFiles  = dimsizes(iFiles)  <br>  f       = addfile(iFiles(0), "r")</div><div>  lat2d     = f->cell_lat</div></div><div>  lon2d     = f->cell_lon</div><div> </div><div> nSmapLat = dimsizes(lat2d(:,0))<br> nSmapLon = dimsizes(lon2d(0,:))<br> minSmapLat = min(lat2d)<br> maxSmapLat = max(lat2d)<br> minSmapLon = min(lon2d)<br> maxSmapLon = max(lon2d)</div><div> </div><div> lat=fspan(minSmapLat, maxSmapLat, nSmapLat)   <br>    lat!0="lat"<br>    lat&lat=lat<br>    <a href="mailto:lat@units=%22degrees_north" target="_blank">lat@units="degrees_north</a>"<br>    <a href="mailto:lat@long_name=%22Latitude" target="_blank">lat@long_name="Latitude</a>"</div><div> lon=fspan(minSmapLon,maxSmapL<wbr>on, nSmapLon)<br>    lon!0="lon"<br>    lon&lon=lon<br>    <a href="mailto:lon@units=%22degrees_east" target="_blank">lon@units="degrees_east</a>"<br>    <a href="mailto:lon@long_name=%22Longitude" target="_blank">lon@long_name="Longitude</a>"<br>   <br>  lat2d!0="lat"<br>  lat2d!1="lon"<br>  lat2d&lon=lon<br>  lat2d&lat=lat</div><div> </div><div>  lon2d!0="lat"<br>  lon2d!1="lon"<br>  lon2d&lon=lon<br>  lon2d&lat=lat</div><div> </div><div>  minLatBoundary  = 25<br>  maxLatBoundary  = 35<br>  minLonBoundary  = 110<br>  maxLonBoundary  = 120</div><div><br>  sm   = f->sm_rootzone<br>  printVarSummary(sm)<br>  sm!0="lat"<br>  sm!1="lon"<br>  sm&lon=lon<br>  sm&lat=lat<br>  printVarSummary(sm)<br>  <br>  sm_regional = sm({minLatBoundary:maxLatBound<wbr>ary},{minLonBoundary:maxLonBou<wbr>ndary})</div><div>******************************<wbr>*****</div><div> </div><div>Thanks a lot for your precious attentions and time!</div><div> </div><div>Yi Lu</div><div> </div><div><u></u><div style="color:rgb(144,144,144);font-family:Arial Narrow;font-size:12px"><br><br><br><br></div><div style="color:rgb(0,0,0);font-family:Verdana;font-size:14px"><div style="overflow:hidden"><table class="m_-1248797774592653397m_3604882697270801705m_-3190131480961151276preview_table"><tbody><tr><td valign="middle"><img id="m_-1248797774592653397m_3604882697270801705m_-3190131480961151276preview_qrcode" src="https://exmail.qq.com/cgi-bin/setting_qrcode_card?action=qrcode_card&alias=dg1225033@smail.nju.edu.cn&key=33b1e5708e6a55b5"></td><td style="color:rgb(160,160,160);font-size:12px" valign="middle"><h4 class="m_-1248797774592653397m_3604882697270801705m_-3190131480961151276name" style="margin:0px;color:rgb(0,0,0);line-height:28px;font-size:14px;font-weight:bold">易路</h4><p class="m_-1248797774592653397m_3604882697270801705m_-3190131480961151276department" style="margin:0px">南大邮件系统/学生/博士生/12级博士生</p><p class="m_-1248797774592653397m_3604882697270801705m_-3190131480961151276addr" style="margin:0px;color:rgb(160,160,160);line-height:22px"><a href="https://maps.google.com/?q=%E5%8D%97%E4%BA%AC%E5%B8%82%E6%B1%89%E5%8F%A3%E8%B7%AF22%E5%8F%B7&entry=gmail&source=g">南京市汉口路22号</a> </p></td></tr></tbody></table></div></div><u></u></div><div> </div><div><u></u><u></u></div><div id="m_-1248797774592653397m_3604882697270801705m_-3190131480961151276QQMailBigAttach" style="padding:2px;width:auto;font-family:Verdana,Arial,Tahoma;font-size:14px;margin-bottom:15px;background-color:rgb(224,236,249)"><hr style="display:none"><div style="padding:6px 0pt 10px 6px;text-align:left"><b style="font-size:14px"><img style="margin-right:4px" src="https://res.mail.qq.com/zh_CN/htmledition/images/icon_att.gif" align="absmiddle" border="0">从腾讯企业邮箱发来的超大附件</b></div><div style="background:rgb(255,255,255);padding:0pt 8px 6px 12px"><div style="clear:both"><div style="padding:10px 0px;font-size:12px"><div title="SMAP_L4_SM_gph_20150815T013000_Vv3030_001.h5

文件大小:136.33M

到期时间:2018年01月12日 11:27" class="m_-1248797774592653397m_3604882697270801705m_-3190131480961151276bigatt_bt"><div style="margin:2px 8px 0px 0px;float:left"><a href="http://exmail.qq.com/cgi-bin/ftnExs_download?k=523465623d8c4a92182f6ffe1038075719575c5a030c065706190304015b1d51000c504f0e0e55561b075257010c0452050d070051381e65657924326874043a65793a0547506f57060550520f0905310605565207086f334007555107670055181a4b4c5f0d3058&t=exs_ftn_download&code=64eb780e&s=email" target="_blank"><img src="https://res.mail.qq.com/zh_CN/htmledition/images/fj/fu_qita.gif" border="0"></a></div><div class="m_-1248797774592653397m_3604882697270801705m_-3190131480961151276name_big"><span class="m_-1248797774592653397m_3604882697270801705m_-3190131480961151276qqmailbgattach"><a style="color:rgb(0,0,0)" href="http://exmail.qq.com/cgi-bin/ftnExs_download?k=523465623d8c4a92182f6ffe1038075719575c5a030c065706190304015b1d51000c504f0e0e55561b075257010c0452050d070051381e65657924326874043a65793a0547506f57060550520f0905310605565207086f334007555107670055181a4b4c5f0d3058&t=exs_ftn_download&code=64eb780e&s=email" target="_blank">SMAP_L4_SM_gph_20150815T013000<wbr>_Vv3030_001.h5</a><span style="color:rgb(160,160,160)"> (136.33M, 2018年01月12日 11:27 到期)</span></span><div class="m_-1248797774592653397m_3604882697270801705m_-3190131480961151276down_big"><a href="http://exmail.qq.com/cgi-bin/ftnExs_download?k=523465623d8c4a92182f6ffe1038075719575c5a030c065706190304015b1d51000c504f0e0e55561b075257010c0452050d070051381e65657924326874043a65793a0547506f57060550520f0905310605565207086f334007555107670055181a4b4c5f0d3058&t=exs_ftn_download&code=64eb780e&s=email" target="_blank">进入下载页面</a><span style="display:none">:<a href="http://exmail.qq.com/cgi-bin/ftnExs_download?k=523465623d8c4a92182f6ffe1038075719575c5a030c065706190304015b1d51000c504f0e0e55561b075257010c0452050d070051381e65657924326874043a65793a0547506f57060550520f0905310605565207086f334007555107670055181a4b4c5f0d3058&t=exs_ftn_download&code=64eb780e&s=email" target="_blank">http://exmail.qq.com/cg<wbr>i-bin/ftnExs_download?k=523465<wbr>623d8c4a92182f6ffe103807571957<wbr>5c5a030c065706190304015b1d5100<wbr>0c504f0e0e55561b075257010c0452<wbr>050d070051381e6565792432687404<wbr>3a65793a0547506f57060550520f09<wbr>05310605565207086f334007555107<wbr>670055181a4b4c5f0d3058&t=exs_f<wbr>tn_download&code=64eb780e&s=em<wbr>ail</a></span></div></div></div></div></div></div></div><br></div></div>______________________________<wbr>_________________<br>
ncl-talk mailing list<br>
<a href="mailto:ncl-talk@ucar.edu" target="_blank">ncl-talk@ucar.edu</a><br>
List instructions, subscriber options, unsubscribe:<br>
<a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" rel="noreferrer" target="_blank">http://mailman.ucar.edu/mailma<wbr>n/listinfo/ncl-talk</a><br>
<br></blockquote></div><br></div>
<br>______________________________<wbr>_________________<br>
ncl-talk mailing list<br>
<a href="mailto:ncl-talk@ucar.edu" target="_blank">ncl-talk@ucar.edu</a><br>
List instructions, subscriber options, unsubscribe:<br>
<a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" rel="noreferrer" target="_blank">http://mailman.ucar.edu/mailma<wbr>n/listinfo/ncl-talk</a><br>
<br></blockquote></div><br></div>

</div></div></div></div><u></u></div></blockquote></div><br></div>