[ncl-talk] gsn_csm_contour_map_ce error, flat field
Kyle Griffin
ksgriffin2 at wisc.edu
Tue Oct 7 18:51:30 MDT 2014
This requirement is due to the way the file seems to be created - for some
reason, a LOT of duplicate data is stored in the file. Each new_lat/new_lon
is only two dimensional, but you've also stored a value of new_lat and
new_lon at each time. Unless the lat/lon points of each time differ from
each other (VERY unusual and I don't think this is explicitly supported),
the time dimension is unnecessary and stores identical lat/lon points 130
times over (your number of times) instead of just once (some extra 32 MB of
data from some rough numbers).
More simply, lat2d needs 2-d points. Alan has simply had you pull the
lat/lon coords for a single time, which is all you need. You can't give a
two-dimensional variable (lat and lon) a three-dimensional coordinate.
Kyle
----------------------------------------
Kyle S. Griffin
Department of Atmospheric and Oceanic Sciences
University of Wisconsin - Madison
Room 1421
1225 W Dayton St, Madison, WI 53706
Email: ksgriffin2 at wisc.edu
On Tue, Oct 7, 2014 at 7:23 PM, David Adams <dave.k.adams at gmail.com> wrote:
> Thanks, Alan
> yes, that was the trick
>
> d at lat2d = new_lat(111,:,:)
> d at lon2d = new_lon(111,:,:)
> plot = gsn_csm_contour_map_ce(wks,d(111,:,:), res)
>
> Although it seems strange to me that I can't write
> d at lat2d = new_lat(:,:,:)
> d at lon2d = new_lon(:,:,:)
> for all 130 time dimensions. I have to fixed the first column.
>
> saludos,
> Dave
>
>
>
>
>
>
>
>
> On Tue, Oct 7, 2014 at 6:35 PM, Alan Brammer <abrammer at albany.edu> wrote:
>
>> The error gives you a good starting point. So the coords of d are yc and
>> xc which have no information associated with them. You've read in lat and
>> lon, you just need to match that up to the plotting variable. It looks
>> like the coords are 2 dimensional (maybe even 3 dimensional? )
>>
>> Take a look at example 3 here:
>> https://www.ncl.ucar.edu/Applications/raster.shtml
>> Based on that I would do the below. There may be some more resources
>> needed which will be in that example, or the 2 extra lines below may do it
>> for you.
>>
>> ...
>> d at lat2d = new_lat(111,:,:)
>> d at lon2d = new_lon(111,:,:)
>> plot = gsn_csm_contour_map_ce(wks,d(111,:,:), res)
>>
>>
>>
>> Good Luck,
>> Alan Brammer
>>
>>
>>
>>
>>
>> On Tue, Oct 7, 2014 at 7:24 PM, David Adams <dave.k.adams at gmail.com>
>> wrote:
>>
>>> Hi NCLers (sorry if multiply posted, I am having trouble with my
>>> registration)
>>>
>>> I am trying to plot of map of GOES IR Brightness temperature, but am
>>> getting a flat field. When I print the data they're fine, the values are
>>> correct.
>>>
>>> The file I am using I created with
>>> ncrcat
>>> to put all of the 15 minutes GOES netcdf images into a daily file.
>>> Maybe I erred here, maybe something wrong with the time dimension.
>>>
>>> Here is ncdump -h of the file I want to plot
>>>
>>> -------------------------------------------------------------------------------
>>> ncdump -h test.nc
>>> netcdf test {
>>> dimensions:
>>> yc = 221 ;
>>> xc = 141 ;
>>> time = UNLIMITED ; // (130 currently)
>>> variables:
>>> float new_temp(time, yc, xc) ;
>>> new_temp:time = 1372896900 ;
>>> new_temp:units = "K" ;
>>> new_temp:coordinates = "lon lat" ;
>>> new_temp:type = "GVAR" ;
>>> new_temp:long_name = "Temperature" ;
>>> float new_lat(time, yc, xc) ;
>>> new_lat:units = "degrees_north" ;
>>> new_lat:long_name = "lat" ;
>>> float new_lon(time, yc, xc) ;
>>> new_lon:units = "degrees_east" ;
>>> new_lon:long_name = "lon" ;
>>> int time(time) ;
>>> time:units = "seconds since 2013-185 00:15" ;
>>>
>>> // global attributes:
>>> :history = "Mon Oct 6 18:26:36 2014: ncrcat
>>> goes13_4_2013_185_0015_subset.nc ............
>>> goes13_4_2013_185_2345_subset.nc test.nc\n",
>>> "Mon Oct 6 18:24:58 2014: ncatted -O -a
>>> units,time,c,c,seconds since 2013-185 00:15 out.nc\n",
>>> "Mon Oct 6 18:24:58 2014: ncap2 -O -v -s
>>> time=array(0,0,$time) out.nc\n",
>>> "Mon Oct 6 18:24:58 2014: ncrename -O -d record,time out.nc"
>>> ;
>>> :nco_openmp_thread_number = 1 ;
>>> }
>>>
>>> ----------------------------------------------------------------------------------------------------------------------
>>>
>>> Here is the map plotting code
>>>
>>> -----------------------------------------------------------------------------------------------------------------------
>>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
>>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
>>> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
>>>
>>> ;*********************************
>>> ; read variable
>>> ;*********************************
>>>
>>> f = addfile("test.nc","r")
>>> d = f->new_temp ; float data(time, yc, xc) ;
>>> ; data:type = "IR" ;
>>> printVarSummary(d)
>>> ;*********************************
>>> ; Fix the variable so it has recognizable missing data
>>> ;*********************************
>>> new_lat = f->new_lat
>>> new_lon = f->new_lon
>>>
>>> ;*********************************
>>> ; create plot
>>> ;*********************************
>>> pltType = "pdf" ; "ps", "eps", "pdf",
>>> "png"
>>> pltDir = "./"
>>>
>>> wks = gsn_open_wks(pltType, "test")
>>> gsn_define_colormap(wks,"BlAqGrYeOrReVi200"); choose a color map
>>>
>>> res = True
>>> res at cnFillOn = True ; turn on color
>>> res at cnFillMode = "RasterFill" ; cell mode
>>> res at cnLinesOn = False ; Turn off contour lines
>>> res at gsnSpreadColors = True ; use full colormap
>>> res at gsnAddCyclic = False ; data not cyclic
>>> res at gsnMaximize = True ; ps, pdf, pdf
>>> res at pmTickMarkDisplayMode = "Always" ; use NCL default
>>> res at lbLabelAutoStride = True ; let NCL decide spacing
>>> res at mpMinLatF = 23.0 ; ; region to zoom in on
>>> res at mpMaxLatF = 33.00 ;
>>> res at mpMinLonF = -115.200 ;
>>> res at mpMaxLonF = -102.20 ;
>>> res at mpFillOn = False
>>> res at mpOutlineBoundarySets = "National" ; turn on country
>>> boundaries
>>> res at trGridType = "TriangularMesh" ; Necessary b/c lat, lon
>>> res at lbLabelStride = 5.0 ; every other label bar
>>> label
>>>
>>> plot = gsn_csm_contour_map_ce(wks,d(111,:,:), res)
>>>
>>> ----------------------------------------------------------------------------------------------------
>>>
>>> Also, I am getting these warnings,
>>>
>>> 0) check_for_y_lat_coord: Warning: Data either does not contain a
>>> valid latitude coordinate array or doesn't contain one at all.
>>> (0) A valid latitude coordinate array should have a 'units' attribute
>>> equal to one of the following values:
>>> (0) 'degrees_north' 'degrees-north' 'degree_north' 'degrees
>>> north' 'degrees_N' 'Degrees_north' 'degree_N' 'degreeN' 'degreesN' 'deg
>>> north'
>>> (0) check_for_lon_coord: Warning: Data either does not contain a
>>> valid longitude coordinate array or doesn't contain one at all.
>>> (0) A valid longitude coordinate array should have a 'units'
>>> attribute equal to one of the following values:
>>> (0) 'degrees_east' 'degrees-east' 'degree_east' 'degrees east'
>>> 'degrees_E' 'Degrees_east' 'degree_E' 'degreeE' 'degreesE' 'deg east'
>>>
>>> Any ideas?
>>>
>>> thanks in advance,
>>> Dave
>>>
>>> _______________________________________________
>>> ncl-talk mailing list
>>> List instructions, subscriber options, unsubscribe:
>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>
>>>
>>
>
> _______________________________________________
> ncl-talk mailing list
> 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/20141007/96c3eb96/attachment.html
More information about the ncl-talk
mailing list