[ncl-talk] masking the contiguous United States
Mary Haley
haley at ucar.edu
Wed Jul 8 11:21:23 MDT 2015
Hi Ming,
Sorry for the delay in response. I think you might need to use something
larger than -130, like -127.
I'm in a conference this week. If you continue to have problems, you might
try the masking using shapefile names, rather than lat/lon boundaries.
--Mary
On Sun, Jul 5, 2015 at 12:34 PM, Ming Chen <chen1718 at umn.edu> wrote:
> 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/20150708/09b66b8b/attachment.html
More information about the ncl-talk
mailing list