[ncl-talk] wrf_cape_3d dimensionality error
Andrea Jenney
andrea at atmos.colostate.edu
Fri Aug 28 14:44:27 MDT 2015
Hi all,
I am having a problem with the wrf_cape_3d code. When I run it, I get the following error:
"If p,q,t,z are 3-dimensional (time x lev x lat x lon), psfc,zsfc must be 2-dimensional (lat x lon)"
However, my p,q,t,and z variables are all 3-D and my psfc, and zsfc, are 2-D (as required).
I am running NCL Version 6.2.1
Below is a copy of my 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"
;-------------------------------------------------------------------------------
begin
;-------------------------------------------------------------------------------
; Read netCDF files and extract variables
h48_t_file = addfile("/Users/andrea/Documents/gigaLES/data/TWPICE_gigaLES_3D_TABS_0000086400.nc","r")
h48_q_file = addfile("/Users/andrea/Documents/gigaLES/data/TWPICE_gigaLES_3D_QV_0000086400.nc","r")
h48_t = rm_single_dims(h48_t_file->TABS) ; Read in variables and remove
h48_q = rm_single_dims(h48_q_file->QV) ; singleton time dimension
p = h48_t_file->pres
x = h48_t_file->x
y = h48_t_file->y
z = h48_t_file->z
;-------------------------------------------------------------------------------
; Moisture is in specific humidity. Need to convert to mixing ratio
; r = q / (1 - q)
;-------------------------------------------------------------------------------
h48_r = h48_q ; Copy metadata
h48_q_mask = h48_q ; Copy metadata
h48_q_mask at _FillValue = 0.0 ; Set FillValue to 0 to minimize computational problems with CAPE function
h48_q_mask = mask(h48_q,h48_q.eq.1,False) ; Mask values of 1 to avoid dividing by zero
h48_r = (/ h48_q / (1 - h48_q_mask) /) ; Do math on values only
;-------------------------------------------------------------------------------
; NCL CAPE function requires two additional values, which we define here
; 1. Surface height
zsf = 0.0
; 2. Surface pressures
psf = 1013.25
;-------------------------------------------------------------------------------
; Scalar values need to be conformed to a grid in order to be used by the function
; First, the surface height and pressure become 2D
ny = dimsizes(h48_t(:,0,0)) ; Find size of each dimension
nx = dimsizes(h48_t(0,:,0))
nz = dimsizes(h48_t(0,0,:))
zsf_grid1 = conform_dims( (/ny,nx,1/) , zsf , 2 )
psf_grid1 = conform_dims( (/ny,nx,1/) , psf , 2 )
; Remove the singleton dimension
zsf_grid = rm_single_dims(zsf_grid1)
psf_grid = rm_single_dims(psf_grid1)
; Second, the pressure and height become 3D
p_3d = conform_dims( (/ny,nx,nz/) , p , 2 )
z_3d = conform_dims( (/ny,nx,nz/) , z , 2 )
;-------------------------------------------------------------------------------
; Calculate CAPE and CIN using NCL's wrf_cape_3d function
cape_cin48 = wrf_cape_3d(p_3d,h48_t,h48_r,z_3d,zsf_grid,psf_grid,False)
This is where I run into errors. Doing a printVarSummary on all of the variables used in the wf_cape_3d function gives:
Variable: zsf_grid
Type: float
Total Size: 16777216 bytes
4194304 values
Number of Dimensions: 2
Dimensions and sizes: [2048] x [2048]
Coordinates:
Variable: psf_grid
Type: float
Total Size: 16777216 bytes
4194304 values
Number of Dimensions: 2
Dimensions and sizes: [2048] x [2048]
Coordinates:
Variable: p_3d
Type: double
Total Size: 8556380160 bytes
1069547520 values
Number of Dimensions: 3
Dimensions and sizes: [2048] x [2048] x [255]
Coordinates:
Variable: z_3d
Type: double
Total Size: 8556380160 bytes
1069547520 values
Number of Dimensions: 3
Dimensions and sizes: [2048] x [2048] x [255]
Coordinates:
Variable: h48_t
Type: float
Total Size: 4278190080 bytes
1069547520 values
Number of Dimensions: 3
Dimensions and sizes: [y | 2048] x [x | 2048] x [z | 255]
Coordinates:
y: [ 50..204750]
x: [ 50..204750]
z: [ 25..26685.83203]
Number Of Attributes: 1
time : 20
Variable: h48_r
Type: float
Total Size: 4278190080 bytes
1069547520 values
Number of Dimensions: 3
Dimensions and sizes: [y | 2048] x [x | 2048] x [z | 255]
Coordinates:
y: [ 50..204750]
x: [ 50..204750]
z: [ 25..26685.83203]
Number Of Attributes: 2
_FillValue : 0
time : 20
Thank you!
Andrea
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20150828/270dc6a1/attachment.html
More information about the ncl-talk
mailing list