esmtools
esmtools copied to clipboard
add function to compute grid cell area for a rectilinear grid
Typically you can just cosine-weight for a rectilinear grid, but you need grid cell areas if you're doing some sort of integration.
I've used code borrowed from my advisor in the past to create a cellarea
variable for a 1x1deg rectilinear grid. It would be nice to just have a function here to pass in an arbitrary grid.
This is taken from a notebook made by @hdrake. I'd like to compare the results with the other method I used and implement the below method.
Rearth = 6.378E6 # radius of Earth in meters
# a DataArray that gives grid cell areas on the lat/lon grid (in units of m^2)
area = (np.deg2rad(dlat)*Rearth) * (np.deg2rad(dlon)*Rearth*np.cos(np.deg2rad(ds_out.lat))) * xr.ones_like(ds_out.lon)
Note: this still only works work for rectilinear grids
Yeah, I just assume a user has areacello
, TAREA
, etc. from a curvilinear grid.