more with area_hi2lores: trouble with output

From: B N <gkhan100_at_nyahnyahspammersnyahnyah>
Date: Fri, 12 Jun 2009 15:11:31 -0400

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

Picture_24.png
Received on Fri Jun 12 2009 - 13:11:31 MDT

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