[PROJ] Correcting map projection errors
daan
strebe at aol.com
Tue Apr 23 11:03:36 PDT 2019
It’s simple enough to just implement yourself. Use the authalic latitude to project your geodetic latitude to the sphere, and then use the spherical cylindric equal-area to get to the plane. From there you’re dealing with rectangles.
Authalic latitude:
mathworld.wolfram.com/AuthalicLatitude.html
Lambert: x= longitude, y = sin(latitude)
Cheers,
— daan
> On Apr 23, 2019, at 10:55, Ken Mankoff <mankoff at 3m411.com> wrote:
>
> Hi Thomas and Daan,
>
> Daan wrote:
>> Just project your cells using ellipsoidal cylindric equal area
>> projection and compute the area of the resulting rectangles. This
>> gives you perfect accuracy at the minimum possible computational
>> effort.
>
> This sounds like it might work, but I'm not sure how to do this, i.e. what the correct EPSG code or proj string is for this projection. After some searching I *think* "Lambert Cylindrical Equal Area" might be what you're referring to, which has EPSG:9835, but GRASS does not support that.
>
>
>
> On 2019-04-23 at 19:00 +0200, Thomas Knudsen <knudsen.thomas at gmail.com>
>> I think I understand your case better now: Your base data are gridded
>> (either model output or EO), and you want to know the “real” area of a
>> cluster of grid cells each nominally being 200 m x 200 m.
>
> Thomas - yes I'm sorry if I didn't explain my model use case clearly.
>
> I have various products that cover all of Greenland at 200 x 200 m. This is 100 million cells. I'd like to estimate the error for each cell, 1x. For each individual one I would like to say "this is really 40100 m^2" and "this is really 39234 m^2".
>
> Right now I do this as I showed in my original email. For every 100 M cell center (x,y) I get the (lon,lat) from GRASS, pass that to proj with
>
> "echo ${lon} ${lat} | proj -VS ${PROJSTR}"
>
> and then capture the output, and have the area error for that cell. The result of this step is a new raster, resolution 200 x 200 m, 100 M cells. Cell values range from ~8 to ~-6 (EPSG:3413 has up to 8 % error)
>
> Based on your suggestions that planimeter is better than proj with this stuff, I will rewrite the code to pass the outline of each individual cell to the planimeter tool, and then capture and parse the output to get a matching raster: 200 x 200 m covering my entire domain, with a scale factor at each cell location that represents the projection error.
>
> I am now concerned that the GRASS step of "convert each cell corner from (x,y) to WGS84 (lon,lat)" may introduce its own errors...
>
> But, back to my original question... The proj-generated error raster varies *very slowly*. I take this to mean that your original comment about "valid for infinitesimal items only" may not be an issue. I don't think there is a significant error introduced by my cell-center-point method. However, from the lengthy thread you linked to and your comments about planimeter, proj may not be providing correct results.
>
> -k.
>
More information about the PROJ
mailing list