Re: Coordinate variable specification

From: Correia, James <james.correia_at_nyahnyahspammersnyahnyah>
Date: Thu, 05 Feb 2009 12:16:36 -0800

Thanks Dave-
Unfortunately, while your help proved to me I had the correct variables set,
I needed to use copy_varcoords function to make it work. I still do not
understand why specifying the coordinate vars and names and units was not
enough.

So what does copy_varcoords really do?
jimmyc

On 2/4/09 4:28 PM, "Dave Allured" <dave.allured_at_noaa.gov> wrote:

> James,
>
> Use the coordinate variable reference operator to get the metadata
> for each attached coordinate:
>
> printVarSummary(var1&lat)
> printVarSummary(var1&lon)
> printVarSummary(var1&time)
>
> Dave Allured
> CU/CIRES Climate Diagnostics Center (CDC)
> http://cires.colorado.edu/science/centers/cdc/
> NOAA/ESRL/PSD, Climate Analysis Branch (CAB)
> http://www.cdc.noaa.gov/psd1/
>
> Correia, James wrote:
>> Hi all-
>> I am getting the error:
>> Check_for_lon_coord and A valid coordinate array should have units ...
>>
>> My question is:
>> How do I print out not only the variable summary but also the variables
>> coordinate information?
>>
>> printVarSummary lists the variables coordinates but not there attributes. I
>> have tried to set the coordinates properly, but I appear to be doing
>> something incorrectly.
>>
>> I am working with ccsm3 data.
>>
>> I have copied the script below
>>
>>
>> James Correia Jr., PhD
>> Climate Physics Group
>> Post. Doc.
>> Pacific Northwest National Lab
>>
>> "Wisdom. Strength. Courage. Generosity. Each of us are born with one of
>> these. It is up to us to find the other three inside of us."
>> -Into the West
>>
>> :
>> ;*************************************************
>> ; WRF: panel three different variables at the same time step
>> ;************************************************
>> 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"
>> load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRF_contributed.ncl"
>> begin
>> ;************************************************
>> ; open file and read in data
>> ;************************************************
>> var = "pr" ;cape,shr,eml,qbar,llj,cash
>>
>> if(var .eq. "pr")then
>> unit = "mm/day"
>> end if
>>
>> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>> ; CCSM GCM
>> e1 =
>> addfile("/scratch2/narccap/b30.030e.cam2.h0.PRECL.1970-01_cat_1979-12.nc",
>> "r")
>> e2 =
>> addfile("/scratch2/narccap/b30.030e.cam2.h0.PRECL.1980-01_cat_1989-12.nc",
>> "r")
>> e3 =
>> addfile("/scratch2/narccap/b30.030e.cam2.h0.PRECL.1990-01_cat_1999-12.nc",
>> "r")
>>
>> e4 =
>> addfile("/scratch2/narccap/b30.030e.cam2.h0.PRECC.1970-01_cat_1979-12.nc",
>> "r")
>> e5 =
>> addfile("/scratch2/narccap/b30.030e.cam2.h0.PRECC.1980-01_cat_1989-12.nc",
>> "r")
>> e6 =
>> addfile("/scratch2/narccap/b30.030e.cam2.h0.PRECC.1990-01_cat_1999-12.nc",
>> "r")
>>
>>
>> e7 =
>> addfile("/scratch2/narccap/b30.042e.cam2.h0.PRECL.2000-01_cat_2099-12.nc",
>> "r")
>> e8 =
>> addfile("/scratch2/narccap/b30.042e.cam2.h0.PRECC.2000-01_cat_2099-12.nc",
>> "r")
>>
>> lat = e1->lat
>> lon = e1->lon
>>
>> var1 = e1->PRECL
>> printVarSummary(var1)
>> var2 = e2->PRECL
>> var3 = e3->PRECL
>>
>> var4 = e4->PRECC
>> var5 = e5->PRECC
>> var6 = e6->PRECC
>>
>> var7 = e7->PRECL
>> var8 = e8->PRECC
>>
>> var1 = var1*3600.*24.*1000.
>> var2 = var2*3600.*24.*1000.
>> var3 = var3*3600.*24.*1000.
>> var4 = var4*3600.*24.*1000.
>> var5 = var5*3600.*24.*1000.
>> var6 = var6*3600.*24.*1000.
>> var7 = var7*3600.*24.*1000.
>> var8 = var8*3600.*24.*1000.
>>
>> ;units are m/s need mm/day : 3600.*24.*30.5/1000.
>> ct1 = dimsizes(var1)
>> ct2 = dimsizes(var2)
>> ct3 = dimsizes(var3)
>>
>> cvar = new((/360,128,256/),float)
>> cctas = new((/7,30,128,256/),float)
>> fftas = new((/7,30,128,256/),float)
>>
>> ;get clim vars together to loop over to collect
>> cvar(0:ct1(0)-1,:,:) = var1(:,:,:)+var4(:,:,:)
>> cvar(ct1(0):ct1(0)+ct2(0)-1,:,:) = var2(:,:,:)+var5(:,:,:)
>> cvar(ct1(0)+ct2(0):ct1(0)+ct2(0)+ct3(0)-1,:,:) = var3(:,:,:)+var6(:,:,:)
>>
>> fvar = var7+var8
>>
>> ii = -1
>> do j=0,29
>> jj = -1
>> do i=0,11
>> ii = ii + 1
>> if(i.lt.5 .and. i .gt. 8)then
>> jj = jj + 1
>> cctas(jj,j,:,:) = cvar(ii,:,:)
>> end if
>> end do
>> end do
>> cctas!0 = "month"
>> cctas!1 = "year"
>> cctas!2 = "lat"
>> cctas!3 = "lon"
>> print(cctas&lat)
>>
>> cctas&lat = lat
>> cctas&lon = lon
>> printVarSummary(cctas)
>>
>> cctas&lat_at_units = "degrees_north"
>> cctas&lon_at_units = "degrees_east"
>> printVarSummary(cctas)
>>
>> ctas = dim_avg_Wrap(cctas(lat|:,lon|:,month|:,year|:))
>> copy_VarCoords(var1(lat|:,lon|:,time|:6),ctas(:,:,:))
>> printVarSummary(ctas)
>>
>> ii = -1
>> do j=0,99
>> jj = -1
>> do i=0,11
>> ii = ii +1
>> if(j .gt. 29 .and. j .lt. 61)then
>> if(i .lt. 5 .and. i .gt. 8)then
>> jj = jj +1
>> fftas(jj,j,:,:) = fvar(ii,:,:)
>> end if
>> end if
>> end do
>> end do
>> ;copy_VarCoords(var1(:119,:,:),fftas)
>> fftas!0 = "month"
>> fftas!1 = "year"
>> fftas!2 = "lat"
>> fftas!3 = "lon"
>>
>> fftas&lat = lat
>> fftas&lon = lon
>> fftas&lat_at_units = "degrees_north"
>> fftas&lon_at_units = "degrees_east"
>>
>> ;cdif = var1(0,:,:)
>> ftas = dim_avg_Wrap(fftas(lat|:,lon|:,month|:,year|:))
>> copy_VarCoords(var1(lat|:,lon|:,time|:6),ftas(:,:,:))
>>
>> printVarSummary(ftas)
>>
>> cdif = ftas - ctas
>>
>> resa = True
>> resa_at_gsnRightString = "mm/day"
>> resa_at_gsnAddCyclic =False
>> resa_at_mpMaxLonF = lona(y2,x2)-15.
>> resa_at_mpMaxLatF = lata(y2,x2)+11.
>> resa_at_mpMinLonF = lona(y1,x1)-15.
>> resa_at_mpMinLatF = lata(y1,x1)+2.
>> resa_at_mpFillOn = False
>> resa_at_gsnMaximize = True ; uncomment to maximize size
>> resa_at_gsnSpreadColors = True ; use full range of colormap
>> resa_at_cnFillOn = True ; color plot desired
>> resa_at_cnLinesOn = False ; turn off contour lines
>> resa_at_cnLineLabelsOn = False ; turn off contour labels
>> resa_at_lbLabelAutoStride = True ; let NCL figure lb stride
>> resa_at_cnLevelSelectionMode = "ExplicitLevels" ; explicit [unequal] cn
>> levels
>> resa_at_gsnDraw =False
>> resa_at_gsnFrame = False
>>
>> do u=0,6
>> resa_at_gsnSpreadColorStart = 2
>> resa_at_gsnSpreadColorEnd = 11
>> resa_at_gsnLeftString ="CCSM Precip current"
>> resa_at_gsnRightString = ""
>> resa_at_cnLevels = (/0,.25,.5,1.,1.5,2.,3.,5.,10./)
>> plot(u) = gsn_csm_contour_map_ce(wks,ctas(:,:,u),resa)
>>
>> delete(resa_at_cnLevels)
>> resa_at_cnLevels = (/-1,-0.5,-.25,-.1,0,0.1,0.25,0.5,1/)
>> resa_at_gsnSpreadColorStart = 12
>> resa_at_gsnSpreadColorEnd = 21
>> resa_at_gsnLeftString ="CCSM Precip change"
>> plot(u+1) = gsn_csm_contour_map_ce(wks,cdif(:,:,u),resa)
>> end do
>> ;************************************************
>> ; create panel: panel plots have their own set of resources
>> ;************************************************
>> resP = True ; modify the panel plot
>> resP_at_txString = " "
>> resP_at_gsnMaximize = True ; maximize panel area
>> resP_at_vpHeightF = 0.345614
>> resP_at_vpWidthF = 0.413117
>> resP_at_gsnPanelRowSpec = True ; specify 1 top, 2 lower
>> level
>> resP_at_gsnPanelFigureStrings = (/"A","B","C","D","E","F","G","H"/)
>> gsn_panel(wks,plot,(/4,4/),resP) ; now draw as one plot
>>
>> end
>>
>> _______________________________________________
>> 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

_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Thu Feb 05 2009 - 13:16:36 MST

This archive was generated by hypermail 2.2.0 : Thu Feb 05 2009 - 17:21:37 MST