Respostas:
Sempre existe o método "força bruta":
Pegue uma camada com um sistema de coordenadas conhecido que deve sobrepor-se à sua camada desconhecida.
Agora faça algumas suposições sobre qual projeção a camada desconhecida poderia ser. (UTM, Plate Carree, etc). Projete sua camada do sistema de coordenadas conhecida em cada projeção até encontrar uma que corresponda ao máximo à camada desconhecida.
Estou promovendo comentários de Mapperz e Brandon Copeland adicionando uma resposta que usa sua técnica.
Essa técnica aproveita o fato de que o ArcMap pode converter dados em um novo sistema de coordenadas na memória. Os dados sem coordsys conhecidos não podem ser convertidos, apenas exibidos. Ao projetar os dados conhecidos na memória, podemos ver rapidamente quais coordenadas ele possui nos vários sistemas de coordenadas possíveis.
Como essa pergunta nunca envelhece, criei um site que usa o método Brute Force . Se você arrastar um shp + shx compactado no mapa, ele será mapeado em todos os sistemas de coordenadas disponíveis no PostGIS. Supondo que você saiba como é a aparência "correta", é possível aumentar o zoom nessa área e clicar no polígono para obter o arquivo .prj em epsg.io.
Existem dois ótimos links da Esri que detalham isso:
No meu último trabalho, eu tinha uma camada de dados de geologia (polígono) chamada "FSU_Geol.shp". Meu chefe me deu e me pediu para descobrir várias coisas. Primeiro, ele recebeu esse shapefile pelo cliente e não havia arquivo .prj, então ele queria que eu descobrisse isso. Ele também queria que eu descobrisse quais eram as categorias de Geologia. Eu poderia continuar, mas vamos direto ao assunto ... Eu pesquisei no Google e acabei AQUI .
O acrônimo na convenção de nomenclatura significava "Geologia da superfície da antiga União Soviética", e a pesquisa no Google me levou "diretamente" à fonte (USGS). Tudo o que eu precisava saber sobre esse shapefile estava no link superior que eu atingi. Não estou dizendo que o Google pode encontrar tudo e qualquer coisa , mas eu estava recém-saído da universidade, apenas dando um "tiro no escuro", e veja o feedback que recebi!
Em outro exemplo, alguém no escritório havia baixado vários arquivos de forma usando uma função em lote. Não lembro o nome do pacote de software no momento, mas os arquivos .prj estavam ausentes. Eu simplesmente fui aos metadados no ArcCatalog e encontrei minha resposta lá. Novamente, não me cite, mas acho que havia uma URL para a fonte lá.
Desde esse dia, eu "começo" com uma pesquisa no Google, se não houver pistas nos metadados!
Pergunte ao produtor.
Se você conhece um CRS comum para sua região geográfica, pode experimentar alguns deles. Mas perguntar é melhor.
Eu realmente amo essa ferramenta da web: http://projfinder.com/ . Verifique seu arquivo e procure algumas coordenadas. Aumente o zoom aproximadamente para o mesmo local do globo e deixe-o adivinhar.
Não é uma ferramenta (eu não conheço uma que exija que você faça isso), mas confira a resposta de @ mkennedy em Como eu converteria esse ponto no WKID 4326? . Ela explica como chegou à referência espacial correta. SpatialReference.org e paciência serão seus amigos.
Além disso, o Esri fornece um guia sobre como adivinhar um sistema de coordenadas (embora eu prefira o método de mkennedy se você souber um pouco mais sobre os dados).
A melhor resposta que encontrei para esta pergunta é não técnica: descubra de onde vieram seus dados. Agências e organizações tendem a ser consistentes com o uso de projeções. Sabe que veio do seu estado DOT? Veja o restante dos dados e veja o que ele diz. Não sabe de onde veio? Um palpite fundamentado tem a mesma probabilidade de enviar você pelo caminho certo.
Pelo menos, torna o combate ao problema com força bruta um pouco mais viável!
Seriamente desatualizado neste momento, mas Werner Flacke e Birgit Klaus postaram Find Projection no ArcScripts em 2007. Infelizmente, não acho que o código fonte esteja lá. É baseado em VBA, portanto, apenas utilizável no ArcGIS Desktop v9.2 e possivelmente 9.3. Inclui dois shapefiles com as áreas de interesse do EPSG Geodetic Parameter Dataset que podem ser usados para restringir as possibilidades.
A Calculadora Geográfica Blue Marble e o Transformador Geográfico têm ferramentas de recuperação do sistema de coordenadas.
Experimente o programa ogrinfo fornecido como parte do GDAL.
Consulte Como acessar os metadados do Shapefile usando o OGR?
Portanto, o ogrinfo pode não fornecer as informações da projeção sem um arquivo .prj, mas ainda é uma ferramenta útil para ajudá-lo a investigar a lista de projeções em potencial.
Por exemplo:
Geometry: Polygon
Feature Count: 269
Extent: (320000.000000, 505000.000000) - (323000.000000, 511000.000000)
Essa resposta me sugere que o shapefile está usando um sistema de referência baseado em medidores e não em graus.
Supondo que você saiba de onde são os dados, agora você tem uma lista mais curta de projeções possíveis.
Outras práticas recomendadas podem ser:
Provavelmente é melhor começar com alguma posição conhecida, em vez de tentar fazer força bruta a partir do zero.
Para adicionar às outras respostas neste post, eu adicionaria o seguinte:
Como: Identificar um sistema de coordenadas projetado desconhecido usando o ArcMap
Forneça uma verificação específica no NAD1927
Se as coordenadas estiverem em graus decimais, como entre a longitude -180 e +180, e a latitude -90 e +90, identifique o Sistema de coordenadas geográficas (referência) usado para os dados. Antes da versão 9.2, o ArcMap atribui GCS_Assumed_Geographic_1 aos dados, por padrão. Isso coloca os dados no dado NAD_1927
além do que, além do mais
Se os dados estiverem nos Estados Unidos e mostrarem até que ponto as coordenadas à esquerda da casa decimal são 6, 7 ou 8 dígitos, os dados provavelmente serão projetados nos sistemas de coordenadas do Plano Estadual ou UTM.
FAQ: Noções básicas de projeção: o que o profissional de GIS precisa saber
Esta página fornece várias verificações na determinação de projeções, o que é importante para ajudar na tentativa de identificar um sistema de coordenadas desconhecido.
Os seguintes conceitos são fundamentais para entender o uso de projeções de mapas no ArcGIS. Observe, porém, que o tópico das projeções é extremamente amplo, e este artigo não pode fazer nada além de abordar alguns tópicos importantes.
Os sistemas de coordenadas, também conhecidos como projeções de mapas, são designações arbitrárias para dados espaciais. Seu objetivo é fornecer uma base comum para a comunicação sobre um determinado local ou área na superfície da Terra. A questão mais crítica ao lidar com projeções de mapas é saber o que é a projeção e ter as informações corretas do sistema de coordenadas associadas a um conjunto de dados.
Quando as primeiras projeções do mapa foram elaboradas, assumiu-se, incorretamente, que a Terra era plana. Mais tarde, a suposição foi revisada e a terra foi assumida como uma esfera perfeita. No século 18, as pessoas começaram a perceber que a terra não era perfeitamente redonda. Este foi o começo do conceito do esferóide cartográfico.
Para representar com mais precisão as localizações na superfície da Terra, os cartógrafos estudaram a forma da Terra (geodésia) e criaram o conceito do esferóide. Em seguida, foram criados sistemas de coordenadas geográficas (GCS), que incluem um dado, unidades de medida e um meridiano de referência. Um dado liga um esferóide a uma porção específica da superfície da Terra. Dados recentes são projetados para caber bem em toda a superfície da Terra.
Os dados mais usados na América do Norte são:
• NAD 1927 (datado da América do Norte 1927) usando o esferóide Clarke 1866
• NAD 1983 (datado da América do Norte 1983) usando o esferóide GRS 1980
• WGS 1984 (World Geodetic Survey 1984) usando o esferóide WGS 1984Os esferóides mais recentes são desenvolvidos a partir de medições de satélite e são mais precisos que os desenvolvidos por Clarke em 1866. Os termos 'sistema de coordenadas geográficas' e 'dado' são usados de forma intercambiável, mas, como observado acima, um GCS inclui um dado, esferóide, unidades de medida e um meridiano de primeira linha.
- As coordenadas dos dados são alteradas dependendo do dado e do esferóide no qual essas coordenadas se baseiam, mesmo se estiverem usando os mesmos parâmetros e projeção de mapa.
Por exemplo, as coordenadas geográficas abaixo são para um único ponto localizado na cidade de Bellingham, Washington, usando três dados diferentes:
Código: DATUM Coordenada X Coordenada Y NAD_1927 -122.466903686523 48.7440490722656 NAD_1983 -122.46818353793 48.7438798543649 WGS_1984 -122.46818353793 48.7438798534299
- Um princípio do bom gerenciamento de dados é obter os parâmetros de projeção da fonte de dados que os fornece. Não faça um palpite sobre a projeção de dados, porque o resultado será um banco de dados GIS impreciso. Os parâmetros necessários são os seguintes:
• Projeção
• Unidades de medida
• ZONA (para UTM)
• Zona FIPS (para plano estadual)
• DadoOutros parâmetros podem ser necessários, dependendo da projeção. Por exemplo, as projeções de Albers e Lambert requerem os seguintes parâmetros:
• 1º paralelo padrão, em graus, minutos e segundos (DMS)
• 2º paralelo padrão (DMS)
• Meridiano central (DMS)
• Latitude da origem das projeções (DMS)
• Falso leste e unidades de medida
• Falso norte e unidades de medida
• Turno X e unidades de medida
• Turno Y e unidades de medida
Eu tive o mesmo problema enquanto estava trabalhando no meu projeto (DEMs). Uma das DEM era de coordenadas desconhecidas e não pode ser projetada, então fiz o 'georreferenciamento' utilizando a ferramenta de georreferenciamento no ArcMap . Após o georreferenciamento, você receberá seu prj.file.
Veja este site:
http://www.egger-gis.at/shapefile-projectionfinder/
Eu sou o desenvolvedor desta ferramenta gratuita. Talvez essa ferramenta possa ajudá-lo a encontrar e definir a projeção correta do seu shapefile. Baseia-se na idéia de http://projfinder.com/ de Aaron Racicot.
Você também pode tentar estas soluções especiais para:
Áustria (alemão): https://www.data.gv.at/anwendungen/checkaustrianprojection/
Austrália: https://maegger.github.io/map_australia.html
UTM - Zonas: https://maegger.github.io/map_utm.html
Você pode fazer isso com Fiona.
import fiona as f
a = fiona.open("C:\QGIS_ShapeFile\qgis\shafile_XXX.shp")
print(a.crs)
Você receberá resposta como
{'init': 'epsg:4326'}