Разрывные или прерванные картографические проекции?

21

Поддерживает ли какое-либо текущее программное обеспечение ГИС с открытым исходным кодом дискретные проекционные системы? Например, синусоидальный , dymaxion , бабочка и т. Д.? Если нет, есть ли доступные коммерческие, которые делают (доступное значение <$ 150)?

Upate: очевидно, было плохой идеей вести с «синусоидальной», так как эта проекция также имеет единую точку непрерывной формы. Обратите внимание, что ключевое слово здесь является прерывистым или прерванным . Благодарю.

Карта бабочки Кэхилла 1909 года

Мэтт Уилки
источник

Ответы:

10

Можно построить что-то вроде прерванной синусоидальной проекции и аналогичных проекций, выполнив несколько (нормальных) синусоидальных проекций, обрезав и вставив их вместе. Я не знаю инструмента, который делает это (но я не тот человек, который спрашивает об инструментах), поэтому в случае, если вам придется прибегнуть к плеванию и склеиванию ...

  • Если вы посмотрите на случайный пример прерванной синусоиды, каждый совершенно вертикальный меридиан соответствует одной синусоидальной проекции.

  • В этом примере вы смотрите на синусоиды с центром в долготе: -160, -100, -60, ...

  • Затем обрежьте и сдвиньте части, чтобы они выровнялись: нижняя левая часть состоит из долгот -180 ..- 100 и широт 0 ...- 90 и проецируется с центральной долготой -160. Следующая часть - это долготы -180 ..- 40 и широты 0,90, спроецированные с центром -100. И так далее (пример, который я привел, был довольно запутанным, и в России может происходить забавное дело; там не похоже на ванильную синусоиду).

Если вам нужна законченная карта, я бы отобразил ее на изображении с высоким разрешением с географической привязкой и построил части проекции, проецируя ее в каждую синусоидальную проекцию, а затем маскируя ее. (Создайте маски, спроецировав сплошные квадраты, которые охватывают целевые диапазоны широт / долгот для каждого куска.) Если вы работаете с необработанными данными, я бы разбил их на входные фрагменты, стараясь разбить линии и многоугольники вдоль любого «разреза» края в проекции.

Надеюсь, это лучший ответ. :)

Было бы интересно побочный проект автоматизировать это в скрипте (например, w / gdalwarp) ...

Дан С.
источник
спасибо за плевок и клей, возможно, мне действительно придется порезать это и атаковать по частям; Я не рассматривал этот подход.
Мэтт Вилки
Нашел документ об этом подходе, который использует ArcInfo - опубликовал новый ответ для «щедрости»
Mapperz
1
при чтении документов приведенные выше примеры как ArcInfo, так и GMT используют этот процесс генерации фрагментов и вставки вместе. Теоретически это должно быть адаптировано к QGIS, траве или что-либо еще. В документе arcinfo есть впечатляющие подробности процесса, в то время как по Гринвичу дается согласие на его сокращение до 3 команд, хотя и ограниченных одним вариантом проекции.
Мэтт Вилки
Посмотрите мой ответ ниже, я сделал программу, которая делает именно это :)
Michał
7

Теперь я загрузил бесплатную и очень подробную программу для создания многомасштабной мегапиксельной карты Cahill-Keyes с границами и разрешением гео-ячеек в один градус в масштабе 1/1 000 000 или меньше. Он использует бесплатный OpenOffice.org Draw 3.0 и Perl. http://www.genekeyes.com/MEGAMAP-BETA-1/Megamap-Beta-1.html . (Проверьте ссылку здесь для многих JPEG, PDF и бесплатных загрузок размером до 40 МБ.)

введите описание изображения здесь

Джин Киз
источник
4

Здесь есть C-программа, которая может выполнять преобразование координат из (Lat, Long) в (X, Y) в проекции dymaxion. Я не уверен, что это соответствует вашим критериям открытого исходного кода, но это так близко, как я пришел.

Я не нашел ничего, что могло бы сделать правильную проекцию, но я нашел этот ресурс от Джина Кейса, сравнивающего проекции бабочки Кэхилла и димаксиона Фуллера, что действительно приятно. У него есть скрипт на Perl, который может отображать координаты на карте dymaxion. Оттуда я нашел основу для этого сценария: вышеупомянутый сайт RW Grey, который имеет программу на C, которая может выполнять преобразование координат, и, пожалуйста, смотрите его примечание внизу страницы, касающееся условий использования кода.

yhw42
источник
2

Пакет mapproj R поддерживает хороший диапазон проекций, среди которых синусоидальный.

Вы также можете посмотреть на Мириаэдрические проекции Джека ван Вейка в соответствии с его статьей :

Все изображения были получены с помощью специально разработанного интегрированного инструмента для определения сеток и весов, а также для расчета и визуализации результатов, работающих под управлением MS Windows.

Радек
источник
Но поддерживает ли он прерывную версию синусоидальной проекции?
Подземье
1
-1 для mapproj, который (из документов) поддерживает только одну точку синусоидальной формы, "sinusoidal () с равными интервалами, равной площади, такой же, как bonne (0)" . +1 для Myriahedral, который определенно прерывист и выглядит интересным. Используемое программное обеспечение является частным и недоступным.
Мэтт Вилки
1
@ underdark: не ясно, b4 обновление, что синусоида должна быть прерывистой, отсюда мое предложение. @ Matt: он был создан в академической среде, и я думаю, что есть шанс получить к нему доступ от автора.
Радек
ну, название вопроса не изменилось;) nvm
underdark
2

Я давно реализовал Cahill-Keyes в D3.js, следуя замечательной документации / коду Gene Keyes на его сайте. Вы можете найти это в этом bl.ock

Вот снимок:

введите описание изображения здесь

espinielli
источник
1

Джин Киз и ее партнер Мэри Джо Граса недавно опубликовали Cahill-Keyes Octant Graticule: Принципы и спецификации с программами Perl и макросами OpenOffice.org 2.0 для 1/1 000 000 Megamap в рамках лицензии Creative Commons. Аннотация "Как составить полную одношаговую карту мира с восемью октантами в 1/1 000 000 с помощью Perl и макросов в бесплатной программе для рисования векторов OpenOffice.org 2.0 на нетбуке Asus за 300 долларов. Это еще одна часть моего проекта примечания к карте «Реального мира» Кэхилла-Кейса. Она описывает только детализацию, в мельчайших деталях, как архетипы, нарисованные от руки или с компьютера. Ввод данных ГИС является следующей задачей ».Графика в вопросе с сайта Джина. Я не писал о странице perl & OO до сих пор, так как он еще не опубликовал эту страницу.

эскиз результата макроса Open Office

Я создал хранилище ртутного исходного кода для их работы на http://bitbucket.org/maphew/cahill-keyes с целью, в конце концов, заняться разделом «попадание в ГИС». Хотя до сих пор ничего не было сделано - это уголок моего настольного проекта, прогресс будет медленным. :)

Мэтт Уилки
источник
1

Как уже упоминалось ранее, программа C здесь хорошо работает. Также доступно здесь в javascript для openlayers.

Я успешно использовал оба варианта, но добился наибольшего успеха с версией javascript в системе сценариев Adobe Illustrator. Я взял файлы форм и преобразовал их в объекты javascript, загрузил их в иллюстратор и при рисовании пропустил точки через код проекции javascript.

Я создал очень интересную карту часовых поясов с этим кодом.

Я только начинаю работать с QGIS, так что я не уверен, есть ли какие-либо способы иметь пользовательскую программную проекцию, подобную этой, но мне было бы очень интересно узнать об этом здесь.

gazhay
источник
Привет, gazhay, добро пожаловать в GIS.se :) Хорошей практикой является использование заголовка страницы или другого отличительного фрагмента текста вместо hereссылок; облегчает поиск новых ссылок, когда целевая страница неизбежно уступает битроту. (Это также было бы лучше разместить в качестве комментария к упомянутому «ранее упомянутому» ответу, но я понимаю, что как новый пользователь это еще не открыто для вас). Спасибо за помощь. Я рекомендую вопрос и ответ о рабочем процессе Shape> Illustrator> Openlayers, поскольку он звучит интересно ( gis.stackexchange.com/help/self-answer )
Мэтт Уилки
1

Я закодировал синусоидальную прерывистую проекцию в javascript, поэтому она работает в веб-браузере. Вы можете проверить это здесь: http://www.winski.net/?page_id=12 . Я также поддерживаю проекцию лепестка ромашки USGS.

Вам нужно только выбрать входное изображение, синусоидально-прерывистую проекцию из списка проекций, количество отверстий и нажать «проект».

Это под BSD, так что не стесняйтесь делать все, что вы хотите с ним :)

Михал
источник