esmtools icon indicating copy to clipboard operation
esmtools copied to clipboard

add function to compute grid cell area for a rectilinear grid

Open bradyrx opened this issue 5 years ago • 2 comments

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)

bradyrx avatar Oct 20 '19 22:10 bradyrx

Note: this still only works work for rectilinear grids

hdrake avatar Oct 20 '19 23:10 hdrake

Yeah, I just assume a user has areacello, TAREA, etc. from a curvilinear grid.

bradyrx avatar Oct 20 '19 23:10 bradyrx