Re: more with area_hi2lores: trouble with output

From: Erik Noble <enoble_at_nyahnyahspammersnyahnyah>
Date: Fri, 12 Jun 2009 23:09:07 -0400

I am plotting CMORPH_rate (or actually "po") but I am using NCVIEW on the
output netcdf file.
Here are the printvarsummaryies from the terminal log. The lats seem ...ok.

Variable: CMORPH_rate
Type: float
Total Size: 22118400 bytes
            5529600 values
Number of Dimensions: 3
Dimensions and sizes: [time | 8] x [lat | 480] x [lon | 1440]
Coordinates:
            time: [2006093000..2006093021]
            lat: [59.875..-59.875]
            lon: [-179.875..179.875]
Number Of Attributes: 4
  units : mm/hr
  long_name : CMORPH
  lonFlip : longitude coordinate variable has been reordered via lonFlip
  _FillValue : -9999

Variable: po
Type: float
Total Size: 22118400 bytes
            5529600 values
Number of Dimensions: 3
Dimensions and sizes: [time | 8] x [LAT | 480] x [LON | 1440]
Coordinates:
            time: [2006093000..2006093021]
            LAT: [-179.625..59.875]
            LON: [0.125..359.625]
Number Of Attributes: 4
  units : mm/hr
  long_name : CMORPH
  lonFlip : longitude coordinate variable has been reordered via lonFlip
  _FillValue : -9999

On Fri, Jun 12, 2009 at 4:56 PM, Mary Haley <haley_at_ucar.edu> wrote:

>
> I can't tell from your script which variable you're trying to plot.
> Some of your latitude values are going from -179.625 to 59.875
> which is not correct.
>
> However, it looks like from your graphic that the longitude values are
> not quite right.
>
> Do a "printVarSummary" on the variable you're plotting to make sure
> your latitude and longitude ranges are what you'd expect. You can
> email me the output if you're not sure.
>
> --Mary
>
>
>
> On Fri, 12 Jun 2009, B N wrote:
>
> > Hi. Thank for all of the earlier help to help this newbie. 100 thank
> you's :-)
> >
> > I am now using the area_hi2lores to regrid precipitation data (CMORPH)
> > from a hi resolution grid to a lo resolution grid.
> > Although I'm not getting an immediate error with my script, I am
> > getting bad output. I use the script below to extract the global
> > cmorph data from its original binary format, create meta data, then I
> > try to use the area_hi2lores function. (po = area_hi2lores_Wrap
> > (CMORPH_rate&lon,CMORPH_rate&lat, CMORPH_rate , True, 1, LON, LAT,
> > False) in the script).
> >
> > When I look at my results only cover half of the world. Its supposed
> > to be global.
> > Picture is attached to show my result. My terminal log is attached too.
> >
> > Could I have a few suggestions on how to fix this?
> > Sincerely,
> > BOLD
> >
> > ; NCL script that reads in multiple NOAA CMORH precipitation where
> > each file contains
> > ; 16 direct access binary ("big_endian") records, which are 2
> > variables at 3-hourly
> > ; intervals for 1 day (8 pairs)
> > ; MAKE SURE ONLY CMORPH FILES YOU WANT TO PROCESS ARE PRESENT IN
> DIRECTORY
> > ;************************************************
> > 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/csm/shea_util.ncl"
> > load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"
> > ;************************************************
> > DATADir = "./" ; path to your data must have trailing "/"
> > InFILE = "*_3hr-025deg_cpc+comb"
> > FILES = systemfunc("ls " + DATADir + InFILE ) ; root of data file
> > numFILES = dimsizes(FILES)
> > ;=============================
> > ; create lat and long coordinate variables from CMORPH documentation
> > ;============================
> > nlat = 480
> > mlon = 1440
> > lat = 59.875 - ispan(0,nlat-1,1)*0.25
> > lon = 0.125 + ispan(0,mlon-1,1)*0.25
> > lat!0 = "lat"
> > lat&lat = lat
> > lat_at_units = "degrees_north"
> > lon!0 = "lon"
> > lon&lon = lon
> > lon_at_units = "degrees_east"
> >
> > count = 0
> > do ifil = 0, numFILES-1 ; BIG FILES LOOP ; NEW file loop
> > ;===================
> > ; create time variable
> > ;===================
> > year = 2006 ; start year or make part of the loop
> > month = 09 ; start month or make part of loop
> > day = ifil+1
> > ;print(day)
> > yyyymmdd = year*10000 + month*100 + day
> > ntime = 8
> > time = yyyymmdd*100 + ispan(0,21,3)
> > time!0 = "time"
> > time_at_units = "yyyymmddhh"
> > time&time = time
> > ;print(time)
> > ;=======================================
> > ;Create Array of Variables in binary data
> > ;=======================================
> > ntimes = 8 ; 3hourly data in 1 day equals eight intervals
> > CMORPH_rate = new ( (/ntime,nlat,mlon/), "float")
> > comb_MW_global = CMORPH_rate
> > ;========================================
> > ;Read in Binary
> > ;========================================
> > fName = FILES(ifil)
> > setfileoption ("bin", "ReadByteOrder", "BigEndian")
> > ntim = 1
> > do i = 0, 14,2 ; CMORPH binary file contains 16 records.
> NCL
> > starts at counting at 0
> > print ("====== Binary Record= "+(i+1) +"/ NCL Record Counter
> > "+(i)+" ======")
> > comb_MW_global(i/2,:,:) =
> > fbindirread(fName,i,(/ntim,nlat,mlon/),"float")
> > print ("====== Binary Record= "+(i+2) +"/ NCL Record Counter
> > "+(i+1)+" ======")
> > CMORPH_rate(i/2,:,:) = fbindirread(fName,
> > i+1,(/ntim,nlat,mlon/),"float")
> > end do
> > ;=============================
> > ; name dimensions of variables
> > ;============================
> > comb_MW_global!0 = "time"
> > comb_MW_global!1 = "lat"
> > comb_MW_global!2 = "lon"
> > comb_MW_global&time = time
> > comb_MW_global&lat = lat
> > comb_MW_global&lon = lon
> > comb_MW_global_at_long_name = "merged microwave precipitation"
> > comb_MW_global_at_units = "mm/hr"
> > comb_MW_global@_FillValue = -9999
> > printVarSummary(comb_MW_global)
> >
> > CMORPH_rate!0 = "time"
> > CMORPH_rate!1 = "lat"
> > CMORPH_rate!2 = "lon"
> > CMORPH_rate&time = time
> > CMORPH_rate&lat = lat
> > CMORPH_rate&lon = lon
> > CMORPH_rate_at_long_name = "CMORPH"
> > CMORPH_rate_at_units = "mm/hr"
> > CMORPH_rate@_FillValue =-9999
> >
> > ;;;;;;;;;;;;;;;;;;;;;USE NCL's lonflip command to flip the longitudes
> > to go from -180 to 180 instead of 0 to 360
> > CMORPH_rate = lonFlip(CMORPH_rate)
> > printVarSummary(CMORPH_rate)
> > ;==============================
> > ;;;;;;;;;;;;;;USE NCL's area_hi2lores function for precipitation
> > ;;;;;;;;;;;;;; I want to regrid from default .25x.25 grid to 0.5x0.5 grid
> >
> > LAT = 59.875 - ispan(0,nlat-1,1)*0.50
> > LON = 0.125 + ispan(0,mlon-1,1)*0.50
> > po = area_hi2lores_Wrap (CMORPH_rate&lon,CMORPH_rate&lat, CMORPH_rate
> > , True, 1, LON, LAT, False)
> >
> > ;;;;DO I need to use lonFlip again?????
> > po = po(:,::-1,:)
> > po = lonFlip(po)
> > printVarSummary(po)
> > printMinMax(po,True)
> > ;======================
> > ; Create NetCDF Ouput File of day
> > ;======================
> > ncout ="Test_"+yyyymmdd+"_CMORPH_3hr-050deg.nc"
> > system("/bin/rm -f "+ncout)
> > a = addfile(ncout,"c") ; write netCDF file
> > a_at_title = " CMORPH and Combined MW Precipitation 3-hourly data"
> > a_at_source =
> > "ftp://ftp.cpc.ncep.noaa.gov/precip/global_CMORPH/3-hourly_025deg"
> > filedimdef(a,"time",-1,True) ; make time an UNLIMITED
> > dimension, always recommended
> > ;=============================
> > ;Place Contents into NetCDF file
> > ;=============================
> > a->CMORPH_RATE = po;
> > end do
> >
> _______________________________________________
> ncl-talk mailing list
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
Received on Fri Jun 12 2009 - 21:09:07 MDT

This archive was generated by hypermail 2.2.0 : Mon Jun 15 2009 - 08:53:05 MDT