Qual è il SRID di shapefile census.gov?


9

Ho scaricato i file della contea da:

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

Non riesco a capire quale SRID usare con loro. Quando provo a generare un file di classe da ./manage.py ogrinspect ..., ottengo un SRID -1nel campo poligonale. Non penso che sia giusto.

GDAL mi ha dato il Proj4 di +proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs.

So che un SRID di -1 significa sconosciuto. Ciò non renderebbe inutili le mie geometrie? Come posso capire quale SRID usare?

Sono davvero nuovo di GIS. Mi mancano già i giorni in cui la Terra era piatta.

Questo può anche essere utile:

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)

Risposte:


18

Il primo passo per determinare la corretta proiezione di qualsiasi livello è trovare le eventuali informazioni di proiezione fornite con il livello. Nel caso di a Shapefile, come quello scaricato da Census.gov , tali informazioni sono contenute in un .prjfile, abbreviazione di Projection.

Ecco i contenuti del file di proiezione dai dati del censimento:

GEOGCS [ "GCS_NORTH_AMERICAN_1983", DATUM [ "D_North_American_1983", SPHEROID [ "GRS_1980", 6378137,298.257222101]], PRIMEM [ "Greenwich", 0], unità [ "Degree", ,017453292519943295]]

Le fasi fondamentali di questa, sono le prime parole GEOGCS mezzi Geographic Coordinate System, la stringa ORIGINE : D_North_American_1983, SPHERIOD : GRS_1980e l'ultima parte UNIT : Degree.

Questi si abbinano facilmente alla definizione Proj4 che hai ricevuto:+proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs

Puoi vedere che il dato e l'ellissoide, corrispondono al dato e allo sferiodo nel ".prj". Il longlatmezzo Longitude/Latitude, che viene misurato in Unità di Degrees, che corrisponde al file ".prj".

Non ci sono "nessuna definizione" perché non sono necessarie ulteriori informazioni per identificare il sistema di coordinate geografiche.

Un sito per cercare riferimenti spaziali è: SpatialReference.org

Il sistema di coordinate geografiche nel NAD 83 è difficile da elaborare direttamente, perché fa parte di molte altre proiezioni.

Per semplificare, quello di cui hai bisogno è EPSG 4269 .

Questo collegamento presenta le informazioni di riferimento spaziale in diversi formati. Quello specifico per PostGIS è:

INSERISCI nei valori 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 [ "grado", ,01745329251994328, Autorità [ "EPSG", "9122"]], dell'Autorità [ "EPSG", "4269"]] ');

Per affrontare il tuo ultimo punto relativo all'SRID = -1, penso che sia importante testare i tuoi dati prima di ritenere che siano inutili. Prova a visualizzarlo in alcuni software GIS, come QGIS o ArcGIS . Guarda le coordinate mostrate mentre sposti il ​​cursore. Se vedi intervalli familiari di numeri, come y = 0 - +90 e x = -180 - +180, dovresti riconoscerli come Latitudine / Longitudine. Cominciando a riconoscere gli intervalli di coordinate che si verificano nelle proiezioni comuni e i sistemi di coordinate nella tua zona ti aiuteranno notevolmente mentre avanzi nella tua carriera.

Se sei interessato a saperne di più su proiezioni e sistemi di coordinate, questo è un riferimento fantastico: A Working Manual ( PDF ) - John P. Snyder


Mi sono reso conto che avrei potuto fare la domanda sbagliata. Ho chiesto pesce quando avrei dovuto chiedere come pescare. Se cerco "GRS80 NAD83" su SpatialReference.org , ottengo un risultato che non sembra corretto. --- Il collegamento fornito per EPSG 4269 ha la visualizzazione della mappa OpenLayers con un riquadro di selezione in gran parte dell'Asia e del Nord Africa. È corretto o addirittura significativo?
kzh

@kzh - Onestamente non so perché stia mostrando quel rettangolo di selezione. Non è significativo però. I dettagli contenuti nel riferimento spaziale sono ciò che conta e sono corretti.
Ottieni Spatial il

Il grado è leggermente fuori per qualche motivo - perché dovrebbe essere? spatialreference.org ha un elenco più accurato qui: spatialreference.org/ref/sr-org/6867 , che non esiste come srid nella mia spatial_ref_systabella.
Zachary Schuessler,

@GetSpatial - Perché hai usato 94269 come SRID anziché 4269? (poiché 4269 è l'identificatore EPSG per NAD 83)
neubert

1
@GetSpatial - Da Mr Butler su spatialreference.org "tutti gli ID postgis hanno il prefisso 9 per garantire che non si scontrino con gli ID postgis esistenti."
kttii,

1

@Get Spatial ha ragione e non avrebbe potuto essere una risposta migliore a questa domanda. oltre a lui puoi controllare spatial_ref_sys prima di aggiungere qualsiasi riferimento spaziale.

SELECT * FROM
       spatial_ref_sys WHERE auth_srid = 4269;

probabilmente prenderai sth in questo modo:

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 è semplicemente una tabella di sistemi di coordinate noti codificati dal loro SRID. puoi ottenere maggiori informazioni qui ...

  • srid: SRID numerico. Questa dovrebbe essere la chiave primaria della tabella.
  • auth_name: un nome di autorità come stringa. Questo viene impostato se questo sistema di coordinate è specificato da un'autorità esterna come EPSG.
  • auth_srid: l'ID numerico del sistema di coordinate nel catalogo dell'autorità di cui sopra.
  • srtext: la rappresentazione Well-Known-Text (WKT) del sistema di coordinate (come descritto nella parte 4).
  • proj4text: la rappresentazione Proj4 del sistema di coordinate.

e l'ultima cosa è che per caricarlo nel database usa questo comando:

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

spero che ti aiuti ....

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.