Giter Club home page Giter Club logo

Comments (3)

JiaweiZhuang avatar JiaweiZhuang commented on May 26, 2024

Thanks, that's a really interesting point!

generating those logically rectangular curvilinear grids

By "those" are you referring to WRF's three types of map projections, i.e. Lambert conformal, polar stereographic, Mercator (see WRF technical note, 2.4 Map Projections), or the over 100 projections in Proj4? What projections do you typically use?

LCC grid centered on the origin with 3 km grid spacing

My understanding is that a map projection alone cannot define a grid mesh. WRF assumes constant dx and dy in the projected, Cartesian space, which can then be translated to a mesh in the original spherical coordinate. But the spacing is not uniform anymore on the sphere. Thus "3 km grid spacing" is not well defined. Here's a figure from Section 3.2.1 Map projections in Warner, T. T. (2010). Numerical weather and climate prediction:

screen shot 2018-11-17 at 5 01 52 pm

Indeed, the distortion in grid spacing can be minimized by "using the Mercator projection for grids in tropical latitudes, the polar-stereographic projection for high-latitude grids, and the Lambert-conformal projection for midlatitude grids" (Warner 2010). But in any case the grid spacing will be varying on the sphere. A better API will be passing the total domain size and the resolution?

Also, is the mesh always uniform in the projected space? It is true for WRF but probably not true for all models. I guess for image analysis you can always assume uniform mesh because they are just pixels?

from xesmf.

JiaweiZhuang avatar JiaweiZhuang commented on May 26, 2024

In terms of dependency & API, I think Cartopy will be a great fit (it also depends on Proj.4, but not pyproj), if there is way to use it for explicit coordinate transform. Passingccrs.LambertConformal(...) is more intuitive than passing pyproj.Proj(proj='lcc', ...), because people already use Cartopy for plotting.

from xesmf.

jthielen avatar jthielen commented on May 26, 2024

Thank you for the thorough response and I apologize for my ambiguity!

The map projections I typically use (and so, what I had in mind when I said "those") are the projections used in WRF as you mentioned (especially Lambert conformal) and Albers equal area. But, if this kind of utility could generalize to other projections without too much difficulty, it would make sense to do so.

Also, when I said "3 km grid spacing," I meant it in the projected space in the fashion of WRF, rather than true spacing on the sphere/ellipsoid, since I am indeed assuming a uniform mesh for the pixels in my calculations. Though, I can see now the importance of being careful with this based on what you said. For a grid generation utility like this, would it still be okay to make the assumption of the mesh being uniform in the projected space (so long as this assumption is made clear in documentation)?

Finally, doing this through Cartopy sounds good! When I next get the chance, I can adapt what I have based on the feedback and submit an initial work-in-progress PR if it still seems like something useful.

from xesmf.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.