0

I'm currently working on world map visualizations. For now, I can use a home-made software for visualizations and point projections (Java), but I would like to upgrade the soft to be able to use a similar tool in Python.

Thus, I wanted to use cartopy with the module PROJ4, not to re-code everything, and use the wonderfull existing libraries.

It perfectly works for the PlateCarree projection, but when I want to use the Nearside Perspective, I observe a small difference between the two methods.

The two following pictures are extracted from the Java software (1) and the cartopy plot (2).

Cartopy (0.17) is used with matplotlib (3.0.2) and proj4 (4.9.1). In both pictures, we are observing at lon=lat=0° and at 400 km.

Here is the first image (Java): Java visualization

Here is the second one (Cartopy): Cartopy representation

As one can observe, lands are over-represented in the cartopy plot. Asuming that I want to get exactly the same projection as the one in my Java software (same representation as the "TrueView angles" in Telecom fields), I discovered in the cartopy crs module:

class NearsidePerspective(_Satellite):
        """
        Perspective view looking directly down from above a point on the globe.
        In this projection, the projected coordinates are x and y measured from
        the origin of a plane tangent to the Earth directly below the perspective
        point (e.g. a satellite).
        """

So I got this question: which projection is this about? Are the angles kept, which would means that I have an undetected problem? Or is it an orthogonal projection on the tangent plane? In this case, angles are not conserved, and I would need a solution to apply another projection (the correct one in my case). I might use the wrong one...

Thanks for your time,

Lou

lou
  • 1
  • 2

1 Answers1

0

I'm not sure if it's an orthogonal projection, but what CartoPy is using is directly from Proj4:

https://proj4.org/operations/projections/nsper.html

I think coordinates in this Nearside Perspective coordinates are Cartesian distances (distances from the origin on a plane), not angles. It sounds like angles are what's being used for your projection. Have you looked at using the Geostationary projection, but with a different satellite height?

https://scitools.org.uk/cartopy/docs/latest/crs/projections.html#geostationary

I can say that in this projection, the coordinates are angles (multiplied by the satellite height). Might be what you're looking for.

DopplerShift
  • 5,472
  • 1
  • 21
  • 20
  • At the equator, the use of geostationary looks better the image I got from Java. The problem is that I cannot change the latitude of this kind of view... Why is Geostationary != NearSidePerspective@equator? Should not it be exactly the same, considering what it is intended to be done? Am I wrong considering that these 2 views are what a satellite should see if it was on certain coordinates? – lou May 13 '19 at 09:09
  • They are fundamentally different projections. Geostationary projection uses scanning angles (multiplied by satellite height) as the coordinates; points are identified by how much the viewer has to rotate in each direction to look at a point. https://proj4.org/operations/projections/geos.htmlNearside Perspective uses a Cartesian coordinates on a plane tangent to the earth through the point below the satellite; in this case, no rotation, but instead we're projection locations to a plane. https://proj4.org/operations/projections/nsper.html – DopplerShift May 14 '19 at 13:51
  • Unfortunately, the Proj library, which is what CartoPy uses for most projections, does not allow setting the latitude for the Geostationary projection. If this is problematic for you, I'd recommend opening an issue there: https://github.com/OSGeo/proj.4/issues – DopplerShift May 14 '19 at 13:53
  • An issue concerning the latitude was created. – lou May 17 '19 at 07:54
  • Regarding the Nearside Perspective, would not it be usefull to change a little the description of the projection? Just to say: "This is not what the earth looks like when watching it from the satellite position". Anyway, thanks @DopplerShift! – lou May 17 '19 at 07:56
  • The problem is that NearsidePerspective *can be* what the satellite sees--it all depends upon what is used for the coordinates (the x and y values). In fact, Proj.4 literally says in the docs for Near-sided perspective: "simulates a view from a height h similar to how a satellite in orbit would see it." https://proj4.org/operations/projections/nsper.html Therefore, I don't think as description as you suggest would be appropriate. – DopplerShift May 17 '19 at 19:41