Re: options for 3D regridding global lon-lat to regional LCC

From: Tom Roche <Tom_Roche_at_nyahnyahspammersnyahnyah>
Date: Sat Nov 24 2012 - 09:52:01 MST

Tom Roche Thu, 22 Nov 2012 18:50:36 -0500
>> appropriate method(s) for regridding atmospheric gas concentrations
>> from a global spherical/curvilinear [2] 3D grid (with coordinates=
>> longitude, latitude, sigma) to a regional 3D grid (with coordinates=
>> col, row, sigma) on a Lambert Conformal Conic (LCC) [1] projection
>> over North America with 12-km horizontal resolution.

Dennis Shea Fri, 23 Nov 2012 08:47:30 -0700 (rearranged)
> [4] Your description of the LCC is vague.
> What specific region are you talking about?

Roughly: bounded by longitudes -130° to -59.5° and
latitudes 23.5° to 58.5°. Specifically: scroll past the graphic @

https://github.com/TomRoche/cornbeltN2O/wiki/AQMEII-North-American-domain#wiki-EPA
>>> The EPA WRF/CMAQ simulation domain used [is]

>>> projection: LCC (Lambert Conformal Conic)
>>> standard parallels: 33°, 45° (N)
>>> lon/lat projection center: -97° (W), 40° (N)
>>> domain origin (from projection center, in km): -2556 (W), -1728 (S)
>>> horizontal grid spacing: 12 km
>>> horizontal grid count (x,y): 459, 299
>>> vertical grid count: 34
>>> max height: 50 mb

>>> GRIDDESC

>>> Relevant records for an IOAPI GRIDDESC file for this domain would be like

>>> '12CONUS'
>>> 2 33.0 45.0 -97.0 -97.0 40.0
>>> ' '
>>> 'AQMEII_NA'
>>> '12CONUS' -2556000.0 -1728000.0 12000.0 12000.0 459 299 1

>>> PROJ.4

>>> The PROJ.4 string to use to define the appropriate coordinate reference system for CMAQ grids [appears to be]

>>> +proj=lcc +lat_1=33 +lat_2=45 +lat_0=40 +lon_0=-97 +a=6370000 +b=6370000

> (a) Do you have the latitudes and longitudes of each [2D] grid point?

I can get them easily enough, thanks to R package=M3

http://cran.r-project.org/web/packages/M3/

By "grid point," do you mean

* centers? one can call M3::get.matrix.all.grid.cell.ctrs

* vertices? one can call M3::get.coord.for.dimension for the rows and
  columns, then base R::expand.grid

> (b) The 4 corner points, central meridian & parallel(s).

The central meridian=-97° from the PROJ.4 string above.
The standard parallels are similarly 33°, 45°.
The 4 corner points I can get from one of the M3 methods above.
(The {origin, lower-left corner} can also be gotten via
M3::get.grid.info.M3

>> I have identified 3 options for 3D regridding; I'd appreciate your
>> judgments regarding their suitability for my usecase.

>> 1. The R package 'gstat' provides several methods for 3D
>> interpolation. All appear to be kriging-type estimations, which
>> seems suboptimal for this application. This may just be prejudice
>> on my part, but I'd prefer a conservative regridding--am I being
>> irrational?

> [3] If you want 'any old numbers' ... kriging will do.
> If you want high quality conservative regridding, use ESMF.

Good to have my impression confirmed :-)

>> 2. ESMF-based methods. Unfortunately I must (if I understand the
>> terms correctly) regrid from a spherical grid (lon-lat) to a
>> Cartesian (LCC) grid, and

>> Subject: [3587543] 3D regridding from spherical coordinates to Cartesian coordinates?
>> From: Robert Oehmke <robert.oehmke@noaa.gov>
>> Date: Fri, 16 Nov 2012 10:57:49 -0700
>> Cc: esmf_support <esmf_support@list.woc.noaa.gov>

>> > [ESMF] currently only [supports] regridding between a source and
>> > destination grids with the same coordinate space (e.g. from
>> > Cartesian to Cartesian). If you convert [your input grid] to
>> > Cartesian then you could use [it]

>> I'm assuming the same restriction applies to the NCL function
>> 'ESMF_regrid': is that correct? If so, I'd like to know, is there
>> NCL (or other) functionality that could do a 3D regridding just
>> from a lon-lat grid to some intermediate, regional, unprojected
>> Cartesian equivalent, from which I could then regrid to LCC?
>> I see that the NCL function 'css2c'

>> http://www.ncl.ucar.edu/Document/Functions/Built-in/css2c.shtml
>> > Converts spherical coordinates (lat/lon) to Cartesian coordinates
>> > on a unit sphere.

>> so I could presumably use 'css2c' to create an unprojected
>> Cartesian array of gridpoints corresponding to the vertices of the
>> lon-lat grid over my region of interest [detailed above]). But
>> after that I'd need to recreate a grid from the array of points
>> (i.e., attribute the data value from the lon-lat grid to the
>> matching point in the created Cartesian grid). Aside from not
>> knowing offhand how to do that (though it feels straightforward--

just align the grids appropriately, and copy values

>> perhaps there is NCL functionality for that task?), I'm wondering,
>> could I then use 'ESMF_regrid' to project from those points, on a
>> unit sphere, to LCC? Fortunately the AQMEII-NA space to which I
>> seek to regrid assumes a sphere with radius=6370000 m

Details regarding that process, or an easier alternative, would be
appreciated.

> in the USA this is a 4-day holiday. Most people are not logging in.

Hopefully folks will check the list upon their return.

More annoyingly, the ncl-talk archive seems not to be updating (latest
posts are from W 21 Nov), so I could not cite links to posts above.

> [1] The LCC is curvilinear in NCL parlance.
> [2] The global is (likely) rectilinear.

Huh! Not what I expected. But I'll move that to the other thread (which
I unfortunately can't point to :-(

Thanks for your assistance, Tom Roche <Tom_Roche@pobox.com>
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Sat Nov 24 10:20:12 2012

This archive was generated by hypermail 2.1.8 : Fri Dec 07 2012 - 13:30:06 MST