
dim_num
Calculates the number of True values of a variable's rightmost dimension at all other dimensions.
Prototype
function dim_num ( x : logical ) return_val : integer
Arguments
xAn array of logical values of any dimensionality
Return value
The output dimensionality is the same as the first n-2 dimensions of the input variable. That is, the dimension rank of the input variable will be reduced by one.
Description
The dim_num function counts the number of True values in the n-1th (rightmost) dimension for each index of the dimensions 0...n-2. Missing values are ignored.
Use dim_num_n if you want to specify which dimension(s) to do the count across.
See Also
num, dim_num_n, dim_avg, dim_median, dim_max, dim_min, dim_num, dim_product, dim_rmsd, dim_rmvmean, dim_rmvmed, dim_standardize, dim_stat4, dim_stddev, dim_sum, dim_variance, copy_VarMeta
Examples
Example 1
Let q be dimensioned (ntim,ny,mx). To count the number of non-missing values (q@_FillValue) over all of the rightmost dimension for each time and y value, use ismissing.
nq = dim_num(.not.ismissing(q)) ; nq(ntim,ny)Example 2
Let z(time,lev,lat,lon) where each dimension is named. Use dimension reordering to reorder "z" so that time is the last dimension. Count the number of non-missing values over all time for each level, lat and lon.
Note: in V5.1.1, you will be able to use dim_num_n to avoid having to reorder your data.
znew = z(lev|:,lat|:,lon|:,time|:) ; done for clarity only nTime = dim_num(.not.ismissing(znew)) ; nTime(klev,nlat,mlon) delete(znew) ; if no longer neededIn V5.1.1, you will be able to use dim_num_n to avoid having to reorder your data:
nTime = dim_num_n(.not.ismissing(z),0) ; nTime(klev,nlat,mlon)Example 3
Using the same z as Example 2, count the number of values between 5 and 10 inclusive over all longitudes for each time, lev and lat.
N = dim_num(z.ge.5.and.z.le.10) ; N(ntim,klev,nlat)