Почему я получаю правильную площадь и площадь пересечения при неправильной проекции?

11

Мне нужно рассчитать площади и области пересечения для полигонов (некоторые реальные географические объекты, такие как озеро, город, страна и т. Д.). Полигоны расположены в Калифорнии, Новой Зеландии, России. Анадырь, Швеция

Все полигоны находятся в WGS84.

Что я сделал, используя GeoTool Java API:

  1. Спроецируйте все полигоны, используя EPSG: 3488 , EPSG: NAD83 (NSRS2007) / California Albers и рассчитанные площади и области перекрытия.
  2. Сделал то же самое, используя World_Mollweide и World_Eckert_IV
  3. Отобранные « местные специфические прогнозы » для полигонов из Калифорнии, Новой Зеландии и т. Д.

Я предполагаю, что № 3 является наиболее точным результатом, так как я выбираю проекцию, которая покрывает площадь многоугольника

Результат:

'# 2 показал худший результат по сравнению с # 3

'Разница между областями № 1 и № 3 и областями пересечения составляет менее 0,1%

Зачем? Я выбираю абсолютно неправильную проекцию EPSG: 3488 (Калифорния) для полигонов из Швеции и получаю примерно одинаковые площади и области пересечения?

UPD: Похоже, я не правильно объяснил свое замешательство. Вот пример вывода с объяснением

#area_from_new_zealand_1
EPSG_27200 area[11733479] CRS[World_Mollweide] area[11736023] diff[2544] [0.0%]
EPSG_27200 area[11733479] CRS[World_Eckert_IV] area[11736033] diff[2554] [0.0%] 
EPSG_27200 area[11733479] CRS[EPSG:NAD83(NSRS2007) / California Albers] area[11736034] diff[2555] [0.0%] 

#area_from_new_zealand_2
EPSG_27200 area[2952725]  CRS[World_Mollweide] area[2953281] diff[556] [0.0%] 
EPSG_27200 area[2952725]  CRS[World_Eckert_IV] area[2953342] diff[617] [0.0%] 
EPSG_27200 area[2952725]  CRS[EPSG:NAD83(NSRS2007) / California Albers] area[2953467] diff[743] [0.0%] 

#intersection_area_between_two_new_zealand_areas
EPSG_27200 intersection area[1001857] CRS[World_Mollweide]                          area[1002082] diff[225] [0.0%] 
EPSG_27200 intersection area[1001857] CRS[World_Eckert_IV]                          area[1002082] diff[225] [0.0%] 
EPSG_27200 intersection area[1001857] CRS[EPSG:NAD83(NSRS2007) / California Albers] area[1002096] diff[239] [0.0%] 


#area_from_alaska_1
EPSG_3338 area[56278347]    CRS[World_Mollweide] area[56041510] diff[236837] [0.4%] 
EPSG_3338 area[56278347]    CRS[World_Eckert_IV] area[56041585] diff[236763] [0.4%] 
EPSG_3338 area[56278347]    CRS[EPSG:NAD83(NSRS2007) / California Albers] area[56278426] diff[79] [0.0%] 

#area_from_alaska_2
EPSG_3338 area[17564799282] CRS[World_Mollweide] area[17486015889] diff[78783393] [0.4%] 
EPSG_3338 area[17564799282] CRS[World_Eckert_IV] area[17486869816] diff[77929466] [0.4%]
EPSG_3338 area[17564799282] CRS[EPSG:NAD83(NSRS2007) / California Albers] area[17566197286] diff[1398004] [0.0%] 

 #intersection_area_between_two_alaska_areas 
EPSG_3338 intersection area[43808167] CRS[World_Mollweide] area[45066901] diff[1258734] [2.8%] 
EPSG_3338 intersection area[43808167] CRS[World_Eckert_IV] area[45163183] diff[1355016] [3.0%] 
EPSG_3338 intersection area[43808167] CRS[EPSG:NAD83(NSRS2007) / California Albers] area[43885182] diff[77015] [0.2%]

Моя путаница: EPSG: 3488, предназначенная для использования в Калифорнии

Я выбираю «неправильную» проекцию EPSG: 3488 для районов Аляски, Новая Зеландия и вижу, что результирующие расчеты не отличаются «существенно» от правильных проекций. EPSG: 3488 даже лучше, чем Mollweide, проекции Eckert_IV, предназначенные для использования во всем мире.

Capacytron
источник
Я также обнаружил, что между этими двумя проекциями почти нет заметной разницы, однако эта разница все еще существует. В ArcGIS вы не можете создать «набор классов объектов», если ваши данные не находятся в одной проекции даже с такой небольшой разницей, как между WGS84 и NAD83. Следующая веб-страница была очень информативной для меня, и я надеюсь, что вы найдете ее также полезной. diffbetween.net/technology/… Я бы поставил это как комментарий, но у меня нет 50 повторений :(
Джастин Q
с чем вы сравниваете результаты?
Ян Тертон
@ гигант, пожалуйста, смотрите обновленный вопрос. Я добавил результаты сравнения.
Capacytron
Вы можете попробовать проекции AUTO (UTM с центром в точке, предоставленной пользователем) - построить CRS как String code = "AUTO: 42001," + x + "," + y; // System.out.println (code); CoordinateReferenceSystem auto = CRS.decode (code);
Ян Тертон

Ответы:

9

«EPSG: 3488, EPSG: NAD83 (NSRS2007) / California Albers» - проекция равной площади. Он основан на конике Альберса, который определен для северного полушария. Поскольку Швеция находится в пределах своего определения, в Швеции она равноправна. Это означает, что (до ошибки округления с плавающей запятой) это даст абсолютно правильные области.

Ни Mollweide, ни Eckert не являются абсолютно равными по площади, но (как любезно указывает М. Кеннеди в комментарии) они примерно такие. Вносимые ими искажения будут сопоставимы с различиями между сферой и эллипсоидом, которые ограничены примерно одной частью из 300 (0,3%).

Whuber
источник
1
Билл, Эккерт IV и Моллвейд являются проекциями равных площадей, но имеют только сферические алгоритмы.
mkennedy
1
@mkennedy Ой - я должен был проверить. Спасибо за исправление, Мелита. Я исправлю этот комментарий.
whuber
1
@mkennedy, так что ESRI: 53009 и ESRI: 54009 на самом деле идентичны? Я вижу, что Снайдер не дает формулы для эллипсоида, так в чем смысл этих проекций World_xxx из ESRI, основанных на WGS84?
AndreJ
1
Esri: 53009 (и другие записи 53xxx) используют GeoCRS на основе сферы с R = 6371000.0 m. В диапазоне Esri: 54xxx используется geoCRS WGS84, поэтому фактическим используемым радиусом является большая полуось, 6378137.0. Они оба были добавлены просто как определения тест / образец.
mkennedy
2
Южный полюс находится в десятках тысяч километров от Швеции: он в Антарктиде. Северный полюс находится всего в нескольких тысячах километров от Швеции. Но это не имеет значения: если вы используете проекцию равной площади и она способна проецировать область, область которой вы хотите вычислить, то она будет правильно вычислять площадь (для данных, на которых она основана). Некоторые проекции равной площади способны проецировать весь мир, за исключением одной точки (которая зависит от проекции).
whuber
1

Утверждение @ whuber о том, что проекция равной площади «даст абсолютно правильные площади», сопровождается звездочкой, а именно, предполагая, что края многоугольника являются прямыми линиями в указанной проекции . Часто это хорошее приближение, особенно если края короткие; но это редко строго верно.

Если, с другой стороны, края вашего многоугольника являются геодезическими или прямыми линиями, другие методы могут быть использованы для определения площади с точностью до округления. Мой онлайн планиметр реализует это. Попробуйте.

cffk
источник
Здравствуй! Спасибо за весь вклад. Так хочется ли резюме? EPSG: 3488 использует проекцию Альберса на равные площади, поэтому он правильно рассчитывает площади по всему миру, даже на Южном полюсе?
Capacytron
Вероятно, равная область Альберса обеспечит достаточно приличный результат для вашего приложения. Однако слепое использование этой проекции для расчета площади Антарктиды (которая окружает полюс) даст бессмысленный результат. Поэтому для общего использования я бы порекомендовал рассчитать геодезическую площадь, чтобы вам не пришлось беспокоиться об ограничениях каждой конкретной проекции равной площади.
cffk
Спасибо за ответ. К сожалению, нам нужна площадь в метрах.
Capacytron
Инструмент Планиметр дает вам площадь в квадратных метрах.
cffk
Та же функциональность доступна в пакете Java, Geographiclib-Java . Документация включает в себя код для вычисления площади многоугольника, заданного в виде набора точек широты / долготы с результатом, представленным в квадратных метрах.
cffk