Re: area of rotated lat/lon grid cells?

From: David Brown <dbrown_at_nyahnyahspammersnyahnyah>
Date: Fri Mar 07 2014 - 00:47:45 MST

Hi Leif,
If you want an exact solution, then you could use the gc_tarea function (http://www.ncl.ucar.edu/Document/Functions/Built-in/gc_qarea.shtml) using the unrotated 2d coordinates as input. If you really want to be exact, the data and the coordinate locations given are really the centers of the grid cells, and therefore the true grid corners are half way between adjacent coordinates along each dimension.

But if you only need the relative area comparing each cell with others in the grid, it would be simpler and quicker to use the rotated coordinate system. As long as the 1D coordinates are regularly spaced, and noting that one of the main benefits of using a rotated projection is to make the grid cells nearly equal in area as long as the grid extent stays near the rotated equator, you could just find the distance between adjacent cells (the spacing) in longitude and latitude, and multiply them together to get a basic metric for the area of all the cells. Cells along each longitudinal row should all have the same area (assuming equal spacing along the rotated longitude dimension). Along the latitude dimension the area decreases by the cosine of the latitude. In other words:

latitude spacing * longitude spacing * cos(latitude)

Hope this helps,
 -dave
 
On Mar 6, 2014, at 1:28 PM, Leif Truelsen <truelsen.leif@gmail.com> wrote:

> Hello,
>
> I am working with data that are on a rotated pole grid with rotated latitude and longitude coordinates and associated two-dimensional latitude and longitude variables. I would like to calculate the area of each grid cell. Could someone please advise how to do this?
>
> Thank you.
>
> My data are structured as follows:
> dimensions:
> rlon = 424;
> rlat = 412;
> variables:
> float ta200(rlat=412, rlon=424);
> :standard_name = "air_temperature";
> :long_name = "Air Temperature";
> :units = "K";
> :coordinates = "lon lat plev";
> :grid_mapping = "rotated_pole";
> char rotated_pole;
> :grid_north_pole_longitude = -162.0; // double
> :grid_mapping_name = "rotated_latitude_longitude";
> :grid_north_pole_latitude = 39.25; // double
> double lon(rlat=412, rlon=424);
> :standard_name = "longitude";
> :long_name = "longitude";
> :units = "degrees_east";
> double lat(rlat=412, rlon=424);
> :standard_name = "latitude";
> :long_name = "latitude";
> :units = "degrees_north";
> double rlon(rlon=424);
> :standard_name = "grid_longitude";
> :long_name = "longitude in rotated pole grid";
> :units = "degrees";
> :axis = "X";
> double rlat(rlat=412);
> :standard_name = "grid_latitude";
> :long_name = "latitude in rotated pole grid";
> :units = "degrees";
> :axis = "Y";
> _______________________________________________
> ncl-talk mailing list
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk

_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Fri Mar 7 00:47:56 2014

This archive was generated by hypermail 2.1.8 : Fri Mar 14 2014 - 15:08:52 MDT