Ответы:
Всегда есть метод "грубой силы":
Возьмите слой с известной системой координат, который должен перекрывать ваш неизвестный слой.
Теперь сделайте некоторые обоснованные предположения о том, какой проекцией может быть неизвестный слой. (UTM, Plate Carree и т. Д.). Спроецируйте свой известный слой системы координат в каждую проекцию, пока не найдете тот, который максимально соответствует неизвестному слою.
Я продвигаю комментарии Mapperz и Brandon Copeland, добавляя ответ, который использует их технику.
Этот метод использует преимущество того факта, что ArcMap может конвертировать данные в новую систему координат в памяти. Данные-без-известных-координат не могут быть преобразованы, поэтому они просто отображаются. Проецируя известные данные в память, мы можем быстро увидеть, какие у них есть координаты в различных возможных системах координат.
Поскольку этот вопрос никогда не устареет, я создал сайт, который использует метод грубой силы . Если вы перетащите заархивированный shp + shx на карту, он отобразит его в каждой системе координат, доступной в PostGIS. Предполагая, что вы знаете, как выглядит «правильно», вы можете увеличить эту область и нажать на многоугольник, чтобы получить файл .prj из epsg.io.
Есть две замечательные ссылки от Esri, которые подробно расскажут об этом:
На моей последней работе у меня был слой геологических данных (полигон) с именем «FSU_Geol.shp». Мой босс дал мне это и попросил выяснить некоторые вещи. Во-первых, клиенту был передан этот шейп-файл, а файла .prj не было, поэтому он хотел, чтобы я это выяснил. Он также хотел, чтобы я выяснил, какие категории геологии. Я мог бы продолжать и продолжать, но давайте перейдем к погоне ... Я гуглил это, и я закончил ЗДЕСЬ .
Аббревиатура в соглашении об именах расшифровывалась как «геология поверхности бывшего Советского Союза», и поиск в Google привел меня «прямо» к источнику (USGS). Все, что мне когда-либо нужно было знать об этом шейп-файле, было в верхней ссылке, которую я нажал. Я не говорю, что Google может найти что-нибудь и все , но я только что закончил университет и просто сделал «выстрел в темноте», и посмотрите на отзывы, которые я получил!
В другом случае кто-то в офисе скачал несколько шейп-файлов, используя пакетную функцию. На данный момент я не помню название программного пакета, но файлы .prj отсутствовали. Я просто вошел в метаданные в ArcCatalog, и я действительно нашел там свой ответ. Опять же, не цитируйте меня, но я думаю, что там был URL-адрес источника.
С того дня я «начинаю» с поиска в Google, если в метаданных нет подсказок!
Спросите у производителя.
Если вы знаете общие CRS для своего географического региона, вы можете попробовать некоторые из них. Но спрашивать лучше.
Я действительно люблю этот веб-инструмент: http://projfinder.com/ . Проверьте свой файл и найдите некоторые координаты. Увеличьте примерно то же место на земном шаре и дайте ему угадать.
Не инструмент (я не знаю ни одного существующего, который позволил бы вам сделать это), но посмотрите ответ @ mkennedy на Как я могу преобразовать эту точку в WKID 4326? , Она объясняет, как она пришла к правильной пространственной привязке. SpatialReference.org и терпение будут вашими друзьями.
Кроме того, Esri предоставляет руководство о том, как угадать систему координат (хотя я предпочитаю метод mkennedy, если вы знаете немного больше о данных).
Лучший ответ, который я нашел на этот вопрос, не является техническим: выясните, откуда пришли ваши данные. Агентства и организации, как правило, согласуются с использованием прогнозов. Знаете, это пришло из вашего штата DOT? Посмотрите на остальные их данные и посмотрите, что они вам говорят. Не знаете, откуда это? Обоснованное предположение, скорее всего, отправит вас по правильному пути.
По крайней мере, это делает решение проблемы грубой силой немного более выполнимым!
На данный момент серьезно устарел, но Вернер Флэйк и Биргит Клаус опубликовали Find Projection на ArcScripts в 2007 году. К сожалению, я не думаю, что там есть исходный код. Он основан на VBA, поэтому его можно использовать только в ArcGIS Desktop v9.2 и, возможно, 9.3. Он включает в себя два шейп-файла с интересующими областями из набора данных геодезических параметров EPSG, которые можно использовать для сужения возможностей.
Blue Marble Geographic Calculator и Geographic Transformer имеют инструменты восстановления системы координат.
Попробуйте программу ogrinfo, поставляемую как часть GDAL.
См. Как получить доступ к метаданным Shapefile с помощью OGR?
Таким образом, ogrinfo может не предоставить вам информацию о проекции без файла .prj, но это все еще полезный инструмент, который поможет вам изучить список возможных проекций.
Например:
Geometry: Polygon
Feature Count: 269
Extent: (320000.000000, 505000.000000) - (323000.000000, 511000.000000)
Этот ответ подсказывает мне, что шейп-файл использует систему отсчета, основанную на метрах, а не на градусах.
Предполагая, что вы знаете, откуда примерно данные, у вас теперь есть более короткий список возможных прогнозов.
Другие лучшие практики могут быть следующими:
Вероятно, лучше начать с какой-то известной позиции, чем пытаться использовать грубую силу с нуля.
Чтобы добавить к другим ответам в этом посте, я бы добавил следующее:
Как: определить неизвестную проецируемую систему координат с помощью ArcMap
Предоставить конкретную проверку на NAD1927
Если координаты указаны в десятичных градусах, например, между долготой от -180 до +180 и широтой от -90 до +90, укажите географическую систему координат (данные), используемую для данных. До версии 9.2 ArcMap по умолчанию назначает данные GCS_Assumed_Geographic_1. Это помещает данные в базу данных NAD_1927.
К тому же
Если данные находятся в Соединенных Штатах и показывают степень, в которой координаты слева от десятичного знака составляют 6, 7 или 8 цифр, данные, вероятно, проецируются в системы координат плоскости штата или UTM.
FAQ: Основы проектирования: что нужно знать специалисту по ГИС
Эта страница содержит несколько проверок при определении проекций, что важно при попытке определить неизвестную систему координат.
Следующие понятия являются основополагающими для понимания использования картографических проекций в ArcGIS. Обратите внимание, что тема прогнозов чрезвычайно широка, и эта статья может касаться лишь нескольких важных тем.
Системы координат, также известные как картографические проекции, являются произвольными обозначениями для пространственных данных. Их цель состоит в том, чтобы обеспечить общую основу для общения о конкретном месте или области на поверхности земли. Наиболее важной проблемой при работе с проекциями карты является знание, что такое проекция, и наличие правильной информации о системе координат, связанной с набором данных.
Когда были разработаны первые картографические проекции, ошибочно предполагалось, что Земля плоская. Позже это предположение было пересмотрено, и земля считалась совершенной сферой. В 18 веке люди начали понимать, что земля не была идеально круглой. Это было началом концепции картографического сфероида.
Чтобы более точно представить местоположения на земной поверхности, создатели карт изучили форму Земли (геодезия) и создали концепцию сфероида. Затем были разработаны географические системы координат (GCS), которые включают в себя данные, единицы измерения и простой меридиан. Данные привязывают сфероид к определенной части земной поверхности. Последние данные разработаны так, чтобы хорошо соответствовать всей поверхности Земли.
Наиболее часто используемые датумы в Северной Америке:
• NAD 1927 (Североамериканское датум 1927) с использованием сфероида Clarke 1866
• NAD 1983 (Североамериканский датум 1983) с использованием сфероида GRS 1980
• WGS 1984 (World Geodetic Survey 1984) с использованием сфероида WGS 1984Более новые сфероиды разработаны на основе спутниковых измерений и являются более точными, чем те, которые были разработаны Кларком в 1866 году. Термины «географическая система координат» и «датум» используются взаимозаменяемо, но, как отмечено выше, GCS включает базовые, сфероидные, единицы измерения. и главный меридиан.
- Координаты для данных меняются в зависимости от базовых данных и сфероида, на которых основаны эти координаты, даже если они используют одинаковую проекцию карты и параметры.
Например, приведенные ниже географические координаты относятся к одной точке, расположенной в городе Беллингхем, штат Вашингтон, с использованием 3 разных датумов:
Код: DATUM X-координата Y-координата NAD_1927 -122.466903686523 48.7440490722656 NAD_1983 -122.46818353793 48.7438798543649 WGS_1984 -122.46818353793 48.7438798534299
- Принцип хорошего управления данными заключается в получении параметров проекции из источника данных, предоставляющего данные. Не делайте обоснованного предположения о проекции данных, потому что результатом будет неточная база данных ГИС. Необходимые параметры следующие:
• Проекция
• Единицы измерения
• ЗОНА (для UTM)
• Зона FIPS (для плоскости штата)
• Базовая точкаВ зависимости от проекции могут потребоваться другие параметры. Например, проекции Альберса и Ламберта требуют следующих параметров:
• 1-я стандартная параллель, в градусах, минутах и секундах (DMS)
• 2-я стандартная параллель (DMS)
• Центральный меридиан (DMS)
• Широта начала проекций (DMS)
• Ложное восточное направление и единицы измерения
• Ложное северное направление и единицы измерения
• Сдвиг по оси X и единицы измерения
• Сдвиг по оси Y и единицы измерения
У меня была такая же проблема, когда я работал над своим проектом (DEMs). Одна из ЦМР имела неизвестные координаты и не может быть спроецирована, поэтому я сделал «географическую привязку» с использованием инструмента « Географическая привязка» в ArcMap . После геопривязки вы получите свой prj.file.
Посмотрите на этот сайт:
http://www.egger-gis.at/shapefile-projectionfinder/
Я разработчик этого бесплатного инструмента. Возможно, этот инструмент поможет вам найти и определить правильную проекцию вашего шейп-файла. Это основано на идее http://projfinder.com/ Аарона Рашико.
Вы также можете попробовать это специальные решения для:
Австрия (немецкий): https://www.data.gv.at/anwendungen/checkaustrianprojection/
Австралия: https://maegger.github.io/map_australia.html
UTM - зоны: https://maegger.github.io/map_utm.html
Ты можешь сделать это с Фионой.
import fiona as f
a = fiona.open("C:\QGIS_ShapeFile\qgis\shafile_XXX.shp")
print(a.crs)
Вы получите ответ как
{'init': 'epsg:4326'}