Qual é o SRID dos arquivos de forma census.gov?

9

Eu baixei os arquivos do condado de:

http://www.census.gov/cgi-bin/geo/shapefiles2011/main

Não consigo descobrir qual SRID usar com eles. Quando estou tentando gerar um arquivo de classe ./manage.py ogrinspect ..., recebo um SRID -1no campo polígono. Eu não acho que isso esteja certo.

GDAL me deu o Proj4 de +proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs.

Eu sei que um SRID -1 significa desconhecido. Isso não tornaria minhas geometrias inúteis? Como posso descobrir qual SRID usar?

Eu sou realmente novo no GIS. Eu já sinto falta dos dias em que a Terra era plana.

Isso também pode ser útil:

SELECT PostGIS_full_version();
                                         postgis_full_version                                          
-------------------------------------------------------------------------------------------------------
 POSTGIS="1.5.3" GEOS="3.2.2-CAPI-1.6.2" PROJ="Rel. 4.7.1, 23 September 2009" LIBXML="2.7.8" USE_STATS
(1 row)

>>> import django
>>> django.VERSION
(1, 4, 0, 'final', 0)
kzh
fonte

Respostas:

18

O primeiro passo para determinar a projeção correta de qualquer camada é encontrar as informações de projeção, se houver, que vieram com sua camada. No caso de Shapefile, como o que você baixou do Census.gov , essas informações estão contidas em um .prjarquivo, abreviação de Projection.

Aqui está o conteúdo do arquivo de projeção a partir dos dados do censo:

GEOGCS ["GCS_North_American_1983", DATUM ["D_North_American_1983", SPHEROID ["GRS_1980", 6378137,298.257222101]], PRIMEM ["Greenwich", 0], UNIDADE ["Grau", 0,017453292519943295]]

As partes fundamentais deste, são a primeira palavra GEOGCS meios Geographic Coordinate System, a string DATUM : D_North_American_1983, SPHERIOD : GRS_1980, ea última parte UNIT : Degree.

Eles correspondem facilmente à definição do Proj4 que você recebeu:+proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs

Você pode ver que o datum e o elipsóide correspondem ao datum e ao esferiod no ".prj". O longlatmeio Longitude/Latitude, medido em Unidades de Degrees, que corresponde ao arquivo ".prj".

Não há "defs" porque nenhuma informação adicional é necessária para identificar o Sistema de Coordenadas Geográficas.

Um site para procurar referências espaciais é: SpatialReference.org

O Sistema de Coordenadas Geográficas no NAD 83 é difícil de ser elaborado diretamente, porque faz parte de muitas outras projeções.

Para facilitar, o que você precisa é o EPSG 4269 .

Este link apresenta as informações de referência espacial em vários formatos diferentes. O especificamente para o PostGIS é:

INSERT em valores de spatial_ref_sys (srid, auth_name, auth_srid, proj4text, srtext) (94269, 'epsg', 4269, '+ proj = longlat + ellps = GRS80 + datum = NAD83 + no_defs', 'GEOGCS ["NAD83", DATUM [ "North_American_Datum_1983", SPHEROID ["GRS 1980", 6378137,298.257222101, AUTHORITY ["EPSG", "7019"]], AUTHORITY ["EPSG", "6269"]], PRIMEM ["Greenwich", 0, AUTHORITY [" EPSG "," 8901 "]], UNIT [" degree ", 0.01745329251994328, AUTHORITY [" EPSG "," 9122 "]], AUTHORITY [" EPSG "," 4269 "]] '');

Para abordar seu último ponto em relação ao SRID = -1, acho importante testar seus dados antes de assumir que eles são inúteis. Tente trazê-lo para alguns softwares GIS, como QGIS ou ArcGIS . Observe as coordenadas mostradas à medida que você move o cursor. Se vir intervalos familiares de números, como y = 0 - +90 ex = -180 - +180, você deverá reconhecê-los como Latitude / Longitude. Começar a reconhecer os intervalos de coordenadas que ocorrem nas projeções e sistemas de coordenadas comuns em sua área o ajudarão bastante à medida que você avança em sua carreira.

Se você estiver interessado em aprender mais sobre projeções e sistemas de coordenadas, esta é uma referência fantástica: Um Manual de Trabalho ( PDF ) - John P. Snyder

Get Spatial
fonte
Eu percebi que posso ter feito a pergunta errada. Pedi peixe quando deveria ter perguntado como pescar. Se eu procurar por 'GRS80 NAD83' no SpatialReference.org , recebo um resultado que não parece correto. --- O link que você forneceu para o EPSG 4269 tem a exibição do mapa OpenLayers com uma caixa delimitadora na maior parte da Ásia e no norte da África. Isso é correto ou até significativo?
kzh
@ kzh - Sinceramente, não sei por que está mostrando essa caixa delimitadora. Não é significativo embora. Os detalhes contidos na referência espacial são o que conta e estão corretos.
Get Spatial
O diploma está um pouco desligado por algum motivo - por que seria isso? spatialreference.org tem uma lista mais precisa aqui: spatialreference.org/ref/sr-org/6867 , que não existe como um srid na minha spatial_ref_systabela.
Zachary Schuessler 06/06
@GetSpatial - Por que você usou 94269 como SRID em vez de 4269? (desde 4269 é o identificador EPSG para NAD 83)
Neubert
11
@GetSpatial - do Sr. Butler em spatialreference.org "todos os IDs postgis são prefixados com 9 para garantir que não colidam com os IDs postgis existentes".
kttii
1

@ Get Spatial está certo e não poderia ter sido a melhor resposta para esta pergunta. além dele, você pode conferir spatial_ref_sys antes de adicionar qualquer referência espacial.

SELECT * FROM
       spatial_ref_sys WHERE auth_srid = 4269;

provavelmente você terá sth assim:

SRID  | AUTH_NAME  | AUTH_SRID  | SRTEXT
------+------------+------------+-------
4269  |   EPSG     |   1624     | <big SRTEXT string>

SRTEXT = GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 
         1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],
         PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,
         AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]]

PROJ4TEXT = +proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs

Spatial_ref_sys é apenas uma tabela de sistemas de coordenadas conhecidos codificados pelo seu SRID. você pode obter mais informações aqui ...

  • srid: o SRID numérico. Essa deve ser a chave primária da tabela.
  • auth_name: um nome de autoridade como uma sequência. Isso é definido se este sistema de coordenadas for especificado por uma autoridade externa como o EPSG.
  • auth_srid: o ID numérico do sistema de coordenadas no catálogo da autoridade acima.
  • srtext: a representação de texto conhecido (WKT) do sistema de coordenadas (conforme descrito na parte 4).
  • proj4text: a representação do Proj4 do sistema de coordenadas.

e a última coisa é que, para carregá-lo no banco de dados, use este comando:

shp2pgsql -c -D -s 4269 -I tl_2011_02_anrc.shp myschema.mytable > mysql.sql
psql -d mydb -f mysql.sql

espero que ajude você ....

Aragão
fonte