[ncl-talk] sub: read ascii error
dale zuri
dalezuri at gmail.com
Tue Mar 30 17:25:01 MDT 2021
Hi Dennis and Alessandra,
Sorry. I wasn't sure about the history.
Thanks for your help.
DZ
On Tue, Mar 30, 2021 at 4:52 PM Dennis Shea <shea at ucar.edu> wrote:
> @dale zuri <dalezuri at gmail.com>
>
> As noted, you must provide more information. ncl-talk should not have to
> determine the structure of your data.
>
>
> The *readAsciiTable* assumes that each column contains separate
> variables.
> The avhrr_seaice file's columns are not separate values.
>
> ngrid_pts=720*1440 = 1036800
> It turns out there are 2 grids
>
> The file structure is:
> [1] header line with two values: 720 1440
> [2] nlat=720 latitude values [left to right]
> [3] mlon=1440 longitude values
> [4] 2 successive grids of nlat*mlon values
>
>
> The first line:
> 1 720 1440
>
> The columns are not separate variables. Rather, going left to right, these
> are the 720 latitude grid coordinates.
>
> 2 -89.8750 -89.6250 -89.3750 -89.1250 -88.8750
> -88.6250
> 3 -88.3750 -88.1250 -87.8750 -87.6250 -87.3750
> -87.1250
> [snip]
> 61 -1.37500 -1.12500 -0.875000 -0.625000 -0.375000
> -0.125000
> 62 0.125000 0.375000 0.625000 0.875000 1.12500
> 1.37500
> [snip]
> 120 87.1250 87.3750 87.6250 87.8750 88.1250
> 88.3750
> 121 88.6250 88.8750 89.1250 89.3750 89.6250
> 89.8750
>
> Followed immediately, by 1440 longitude grid coordinates:
>
> 122 0.125000 0.375000 0.625000 0.875000 1.12500
> 1.37500
> 123 1.62500 1.87500 2.12500 2.37500 2.62500
> 2.87500
> [snip]
> 360 357.125 357.375 357.625 357.875 358.125
> 358.375
> 361 358.625 358.875 359.125 359.375 359.625
> 359.875
>
> Then the data values. Likely, -9999.00 is an _FillValue (missing value)
>
> 362 -9999.00 -9999.00 -9999.00 -9999.00 -9999.00
> -9999.00
> 363 -9999.00 -9999.00 -9999.00 -9999.00 -9999.00
> -9999.00
> [snip
>
> The first non-missing values are at:
>
> 11279 -9999.00 -9999.00 -9999.00 -9999.00 -9999.00
> -9999.00
> 11280 -9999.00 -9999.00 -9999.00 -9999.00 -9999.00
> 73.1283
> 11281 72.8258 72.7936 71.9907 71.9810 71.5007
> 71.5007
> 11282 70.9247 70.9355 71.1821 71.1821 71.2308
> 71.2523
> [snip]
> 11293 89.3143 89.4753 89.5369 89.2018 88.8201
> 88.7093
> 11294 89.1968 -9999.00 -9999.00 -9999.00 -9999.00
> -9999.00
> 11295 -9999.00 -9999.00 -9999.00 -9999.00 -9999.00
> -9999.00
> [snip]
> 11532 65.7548 66.1178 66.4644 87.9502 88.4724
> 88.9699
> 11533 89.3143 89.4753 89.5369 89.2018 88.8201
> 88.7093
> 11534 89.1968 -9999.00 -9999.00 -9999.00 -9999.00
> -9999.00
>
> =============================================================
>
> diri = "./"
> fili = "avhrr_seaice"
> pthi = diri + fili
> data = asciiread(pthi,-1,"float")
>
> nlat = 720
> mlon = 1440
> nStrt = (nlat+mlon) + 2 ; 2160 lat/lon values +2: first
> line: 720,1440
> print("nStrt="+nStrt)
>
> seaice = onedtond( data(nStrt:), (/2,nlat,mlon/)) ; skip the 1st 2162
> values
>
> lat = latGlobeFo(nlat, "lat", "latitude", "degrees_north")
> lon = lonGlobeFo(mlon, "lon", "longitude", "degrees_east")
>
> printVarSummary(lat)
> printVarSummary(lon)
>
> seaice!0 = "season"
> seaice!1 = "lat"
> seaice&lat = lat
> seaice!2 = "lon"
> seaice&lon = lon
>
> seaice at long_name = "Seaice"
> seaice at units = "%"
> seaice at _FillValue = -9999.0
>
> printVarSummary(seaice)
> printMinMax(seaice,0)
> ~
>
> ~
>
>
>
>
>
>
> On Tue, Mar 30, 2021 at 1:51 PM Alessandra Giannini via ncl-talk <
> ncl-talk at mailman.ucar.edu> wrote:
>
>>
>> ok, thanks. more questions —
>>
>> So, “data” is a matrix of dimensions 345960 by 6.
>>
>> 1) what is the 6 dimension? what are the 6 "fields"?
>>
>> 2) regarding the 345960 dimension —
>> nlat x nlon = 720x1440 = 1036800, which is larger than 345960.
>> So, each one of the 6 dimensions cannot be a map, given the nlat and nlon
>> dimension you specify.
>>
>> I give up!
>>
>>
>>
>>
>>
>> On Mar 30, 2021, at 2:41 PM, dale zuri via ncl-talk <
>> ncl-talk at mailman.ucar.edu> wrote:
>>
>>
>>
>> ---------- Forwarded message ---------
>> From: dale zuri <dalezuri at gmail.com>
>> Date: Tue, Mar 30, 2021 at 12:36 PM
>> Subject: Re: [ncl-talk] sub: read ascii error
>> To: Alessandra Giannini <alesall at iri.columbia.edu>
>>
>>
>> Hi,
>> Thanks for your response.
>> Variable: data
>> Type: float
>> Total Size: 8303040 bytes
>> 2075760 values
>> Number of Dimensions: 2
>> Dimensions and sizes: [345960] x [6]
>> Coordinates:
>> Number Of Attributes: 1
>>
>> On Tue, Mar 30, 2021 at 12:00 PM Alessandra Giannini <
>> alesall at iri.columbia.edu> wrote:
>>
>>>
>>>
>>> Hi there,
>>>
>>> can you print out:
>>>
>>> printVarSummary(data)
>>>
>>> ?
>>>
>>> are lat and lon really included in the matrix called “data”?
>>> The way you define “templat” and “templon”, they should have the same
>>> dimension. (Is said dimension nlat x nlon?)
>>>
>>> At any rate, lon and lat should be 1-dimensional.
>>>
>>> Rule #0 of ncl-talk is that you should have an idea of the structure of
>>> your data…
>>> Maybe you do, but you are not telling us!
>>>
>>> warm regards, alessandra
>>>
>>>
>>>
>>>
>>>
>>> On Mar 30, 2021, at 1:45 PM, dale zuri via ncl-talk <
>>> ncl-talk at mailman.ucar.edu> wrote:
>>>
>>> Hi Adam,
>>> I would appreciate any help to plot this ASCII data.
>>>
>>> Thanks
>>> DZ
>>>
>>>
>>> ---------- Forwarded message ---------
>>> From: dale zuri <dalezuri at gmail.com>
>>> Date: Tue, Mar 30, 2021 at 10:24 AM
>>> Subject: sub: read ascii error
>>> To: Ncl-talk <ncl-talk at ucar.edu>
>>>
>>>
>>> Dear NCL user,
>>> I would appreciate any help to plot this data. I'm getting this error.
>>>
>>> Thanks in advance
>>> DZ
>>>
>>> fatal:Variable (lat) is undefined
>>> fatal:["Execute.c":8637]:Execute: Error occurred at or near line 18 in
>>> file test.ncl
>>>
>>>
>>>
>>>
>>> begin
>>> nlat=720
>>> nlon=1440
>>>
>>> ncol = 6
>>> nhead = 1
>>>
>>> fname = "avhrr_seaice"
>>> data = readAsciiTable("avhrr_seaice", ncol, "float", nhead)
>>> temp12D = onedtond(data(2,:),(/nlat,nlon/)) ; convert 1D array to a 2D
>>> array
>>> temp22D = onedtond(data(3,:),(/nlat,nlon/)) ; convert 1D array to a 2D
>>> array
>>> templat = data(0,:) ; convert 1D array to a 2D array
>>> templon = data(1,:) ; convert 1D array to a 2D array
>>> ; Assign named dimensions
>>> temp12D!0 = "lat"
>>> temp12D!1 = "lon"
>>> temp12D&lat = templat ; assign coord variables
>>> temp12D&lon = templon
>>> temp22D!0 = "lat"
>>> temp22D!1 = "lon"
>>> temp22D&lat = templat ; assign coord variables
>>> temp22D&lon = templon
>>> temp12D&lat at units = "degrees_north"
>>> temp12D&lon at units = "degrees_east"
>>> temp22D&lat at units = "degrees_north"
>>> temp22D&lon at units = "degrees_east"
>>> ; Assign coordinate variables
>>> printVarSummary(temp12D)
>>> printVarSummary(temp22D)
>>>
>>> wks = gsn_open_wks("x11","test") ; send graphics to PNG
>>> file
>>>
>>> plot = new(2,graphic)
>>> cmap = read_colormap_file("UKM_hadcrut"); choose colormap
>>> ;
>>>
>>> res = True ; plot mods desired
>>> res at cnFillOn = True ; turn on color
>>> ;res at mpShapeMode = "FreeAspect"
>>> res at vpWidthF = 0.3
>>> res at vpHeightF = 0.2
>>> ; res at cnFillPalette 2 = "grads_rainbow" ; choose colormap
>>> res at cnFillPalette = cmap ; choose colormap
>>> res at gsnPolar = "NH" ; specify the hemisphere
>>> res at gsnDraw = False
>>> res at gsnFrame = False
>>> res at gsnTickMarksOn = False
>>> res at mpMinLatF = 50 ; specify min lat
>>> ; res at mpMinLatF = minlatt ; specify min lat
>>> ;res at mpMaxLatF = maxlatt
>>> res at trGridType = "TriangularMesh"
>>> res at cnLinesOn = False ; True is default
>>> ;res at mpFillOn = False ; turns off continent
>>> gray
>>> res at cnLineLabelsOn = False ; True is default
>>> res at mpGridAndLimbOn = False
>>> res at mpLabelFontHeightF = "22"
>>> res at mpPerimLineThicknessF = 2
>>> res at mpOutlineOn = True
>>> ; res at mpLandFillColor = "tan"
>>> ;res at tiMainString = ""+type+"-"+mon+""
>>> res at lbLabelBarOn = False ; turn off individual lb's
>>>
>>> res at gsnLeftString = "" ; no titles
>>> res at gsnRightString = ""
>>> res at tiXAxisString = ""
>>> res at tiYAxisString = ""
>>> res at cnLevelSelectionMode = "ManualLevels" ; set manual contour
>>> levels
>>> res at cnMinLevelValF = 0;0 ; set min contour level
>>> res at cnMaxLevelValF = 100 ;6 ; set max contour
>>> level
>>> res at cnLevelSpacingF = 10;0.5 ; set contour spacing
>>>
>>>
>>> ;res at lbOrientation = "Horizontal"
>>> ;res at lbLabelFontHeightF = 0.014
>>> ;res at lbLabelFont = "22"
>>> ; res at lbTitleString = ""+type+""
>>> ; res at lbTitleString = " (deg C)" ; bar title
>>> ; res at lbTitlePosition = "Right" ; title
>>> location
>>> ; res at lbTitleDirection = "Across" ;
>>> letter angle
>>> ; res at lbTitleAngleF = 90. ; title
>>> angle
>>> ; res at lbTitleFontHeightF = 0.02 ; font
>>> height
>>> res at gsnStringFont = "helvetica-bold" ; will be used for
>>> gsnCenterString later
>>> res at gsnCenterStringFontHeightF = 0.014
>>> res at gsnCenterString = "NDJFM"
>>> plot(0) = gsn_csm_contour_map_polar(wks,temp12D(:,0),res)
>>> res at gsnCenterString = "JJAS"
>>> plot(1) = gsn_csm_contour_map_polar(wks,temp22D(:,1),res)
>>> ;********************************
>>> ;;;;;Contour plot;;;;;;;;;;;;;;;
>>> ;********************************
>>> ; panel plot only resources
>>> ;********************************
>>> ; panel plot only resources
>>> ; panel plot only resources
>>> resP = True ; modify the panel plot
>>> resP at gsnMaximize = True ; large format
>>> resP at gsnPanelLabelBar = True ; add common colorbar
>>> resP at lbLabelFontHeightF = 0.012
>>> resP at gsnPanelBottom = 0.2;;;increases figure size
>>> ; shrink panel plot by setting bottom edge of plot
>>> resP at gsnPanelTop = 0.9 ; shrink panel plot by
>>> setting top edge of plot
>>> resP at pmLabelBarWidthF = 0.50 ; make thinner/small
>>> number
>>> ; resP at pmLabelBarHeightF = 0.05
>>> resP at pmLabelBarHeightF = 0.08
>>> resP at pmLabelBarOrthogonalPosF = -0.016
>>> ; resP at gsnPanelYWhiteSpacePercent = 5. ; increase spacing
>>> along Y-axis between panel plots
>>> resP at gsnPanelYWhiteSpacePercent = 2;;increases the figure size
>>> ; increase spacing along Y-axis between panel plots
>>> res at lbLabelFontHeightF = 0.018
>>> resP at lbLabelFont = "22"
>>> ; resP at lbTitleString = ""+tic+""
>>> resP at cnLinesOn = False ; turn off contour lines
>>> resP at lbLabelFont = "helvetica-bold" ; add common colorbar
>>> resP at lbTitleFont = "helvetica-bold" ; add common colorbar
>>> resP at lbTitleFontHeightF= .015 ; make title smaller
>>> resP at cnLineLabelsOn = False
>>> resP at txFontHeightF = 0.03
>>> resP at txFont = "helvetica-bold"
>>>
>>> gsn_panel(wks,plot,(/1,2/),resP)
>>> ;---This will maximize the size of all the paneled stuff.
>>> ;end do
>>>
>>> end
>>> _______________________________________________
>>> ncl-talk mailing list
>>> ncl-talk at mailman.ucar.edu
>>> List instructions, subscriber options, unsubscribe:
>>> https://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>
>>>
>>> _______________________________________________
>> ncl-talk mailing list
>> ncl-talk at mailman.ucar.edu
>> List instructions, subscriber options, unsubscribe:
>> https://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>
>>
>> _______________________________________________
>> ncl-talk mailing list
>> ncl-talk at mailman.ucar.edu
>> List instructions, subscriber options, unsubscribe:
>> https://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.ucar.edu/pipermail/ncl-talk/attachments/20210330/85584def/attachment.html>
More information about the ncl-talk
mailing list