[ncl-talk] masking the contiguous United States

Ming Chen chen1718 at umn.edu
Sun Jul 5 11:34:49 MDT 2015


Thanks a lot Mary!

The lonFlip function worked and I was able to mask the data.
However, I found that Alaska is also masked in, while I just need the
contiguous US.
I have specified the max/min of longitude and latitude, is it not working?

Here is the debug message:
(0)    ==================================================
(0)    Shapefile:         cb_2014_us_nation_20m.shp   *###NOTE that I
changed a shape file because the previous one did not work well and only
masked in the Alaska area. ###* This one could be download at
https://www.census.gov/geo/maps-data/data/cbf/cbf_nation.html
(0)    Areas of interest: the whole shapefile
(0)    min_lat_chk:       20
(0)    max_lat_chk:       50
(0)    min_lon_chk:       -130
(0)    max_lon_chk:       -65
(0)    min_lat_data:      -90
(0)    max_lat_data:      90
(0)    min_lon_data:      -180
(0)    max_lon_data:      177.5
(0)    13824 data values originally
(0)    Will keep data values inside given shapefile areas
(0)    ==================================================
(0)    229 data values kept
(0)    shapefile_mask_data: elapsed time: 0.377945 CPU seconds.
(0)    ==================================================

Thanks,
Ming

On Sat, Jul 4, 2015 at 11:45 PM, Mary Haley <haley at ucar.edu> wrote:

> If you have lat/lon coordinate arrays attached to your data, then can try
> the "lonFlip" function to convert your data to be -180 to 180 longitude:
>
> http://www.ncl.ucar.edu/Document/Functions/Contributed/lonFlip.shtml
>
> If you don't have coordinate arrays, but instead are using the special
> lat2d/lon2d or lat1d/lon1d attributes, then you can try the "where"
> function:
>
> NEE_AVG at lon2d = where(lon2d.gt.180, lon2d - 360, lon2d)
>
> Note: I don't know what your longitude array is called.  I'm just using
> "lon2d" as an example here.  You can operate on the attribute directly:
>
> NEE_AVG at lon2d = where(NEE_AVG @lon2d.gt.180, NEE_AVG @lon2d - 360,
>  NEE_AVG at lon2d)
>
> You will also need to update your minlon/maxlon attributes to be in -180
> to 180
>
>   opt at minlon = -130   ; 230 - 360
>   opt at maxlon = -65   ; 295 - 360
>
>
> --Mary
>
>
>
> On Sat, Jul 4, 2015 at 9:34 PM, Ming Chen <chen1718 at umn.edu> wrote:
>
>> I think I know why it is happening... The data I'm trying to mask has the
>> longitude from 0 to 357.5, while the shapefile has the longitude from
>> -179.1 to 179.8...
>>
>> Does anyone has suggestion how I can fix that? Thanks!
>>
>> Ming
>>
>>
>>
>> On Sat, Jul 4, 2015 at 10:19 PM, Ming Chen <chen1718 at umn.edu> wrote:
>>
>>> Hi all,
>>>
>>> I was trying to mask the contiguous United States using a shape file and
>>> the script "shapefile_mask_data.ncl", but got all missing values.
>>>
>>> I used ncl 6.2.1. The script I used is here:
>>>
>>> ;Begins to calculate US averaged NEE
>>>   shp_filename = "coastl_usa.shp"
>>>   opt = True
>>>   opt at minlat = 20
>>>   opt at maxlat = 50
>>>   opt at minlon = 230
>>>   opt at maxlon = 295
>>>   opt at debug  = True
>>>   opt at keep   = True
>>>   opt at loop_check   = True
>>>   data_mask    = shapefile_mask_data(NEE_AVG,shp_filename,opt)
>>>   NEE_scalar   = wgt_areaave(data_mask,1.,1.,0) ;averaged NEE over the
>>> United States
>>>
>>>
>>> And here is the message I got:
>>> (0)    ==================================================
>>> (0)    Shapefile:         coastl_usa.shp
>>> (0)    Areas of interest: the whole shapefile
>>> (0)    min_lat_chk:       20
>>> (0)    max_lat_chk:       50
>>> (0)    min_lon_chk:       230
>>> (0)    max_lon_chk:       295
>>> (0)    min_lat_data:      -90
>>> (0)    max_lat_data:      90
>>> (0)    min_lon_data:      0
>>> (0)    max_lon_data:      357.5
>>> (0)    13824 data values originally
>>> (0)    Will keep data values inside given shapefile areas
>>> (0)    ==================================================
>>> (0)    0 data values kept
>>> (0)    shapefile_mask_data: elapsed time: 0.930859 CPU seconds.
>>> (0)    ==================================================
>>>
>>> I can see there are 13824 data points in my NEE_AVG data. And I have
>>> plot that without problem. Why there was no data masked?
>>>
>>> Thanks,
>>> Ming
>>>
>>>
>>> --
>>> Department of Soil, Water and Climate
>>> 439 Borlaug Hall 1991 Upper Buford Cir.
>>> St. Paul 55108
>>> MN USA
>>> Office: 612-624-1645
>>> http://www.biometeorology.umn.edu/people_ming.php
>>>
>>
>>
>>
>> --
>> Department of Soil, Water and Climate
>> 439 Borlaug Hall 1991 Upper Buford Cir.
>> St. Paul 55108
>> MN USA
>> Office: 612-624-1645
>> http://www.biometeorology.umn.edu/people_ming.php
>>
>> _______________________________________________
>> ncl-talk mailing list
>> ncl-talk at ucar.edu
>> List instructions, subscriber options, unsubscribe:
>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>
>>
>


-- 
Department of Soil, Water and Climate
439 Borlaug Hall 1991 Upper Buford Cir.
St. Paul 55108
MN USA
Office: 612-624-1645
http://www.biometeorology.umn.edu/people_ming.php
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20150705/3461a8ad/attachment.html 


More information about the ncl-talk mailing list