Quel est le SRID des fichiers de formes Census.gov?

9

J'ai téléchargé les fichiers du comté à partir de:

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

Je ne peux pas comprendre quel SRID utiliser avec eux. Lorsque j'essaie de générer un fichier de classe à partir de ./manage.py ogrinspect ..., j'obtiens un SRID de -1dans le champ polygone. Je ne pense pas que ce soit juste.

GDAL m'a donné le Proj4 de +proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs.

Je sais qu'un SRID de -1 signifie inconnu. Cela ne rendrait-il pas mes géométries inutiles? Comment savoir quel SRID utiliser?

Je suis vraiment nouveau au SIG. Les jours où la Terre était plate me manquent déjà.

Cela peut également être 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)
kzh
la source

Réponses:

18

La première étape pour déterminer la projection correcte de n'importe quel calque consiste à trouver les informations de projection, le cas échéant, fournies avec votre calque. Dans le cas d'un Shapefile, comme ce que vous avez téléchargé à partir de Census.gov , cette information est contenue dans un .prjfichier, abréviation de Projection.

Voici le contenu du fichier de projection des données du recensement:

GEOGCS ["GCS_North_American_1983", DATUM ["D_North_American_1983", SPHEROID ["GRS_1980", 6378137,298.257222101]], PRIMEM ["Greenwich", 0], UNIT ["Degree", 0.01745329251994

Les éléments clés de ce sont les premiers mots GEOGCS moyens Geographic Coordinate System, la chaîne DATUM : D_North_American_1983, SPHERIOD : GRS_1980, et la dernière partie UNITÉ : Degree.

Ceux-ci correspondent facilement à la définition Proj4 que vous avez reçue:+proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs

Vous pouvez voir que le datum et l'ellipsoïde correspondent au datum et à la période dans le ".prj". Les longlatmoyens Longitude/Latitude, qui est mesuré en unités de Degrees, qui correspond au fichier « .prj ».

Il n'y a "aucune définition" car aucune information supplémentaire n'est nécessaire pour identifier le système de coordonnées géographiques.

Un site pour rechercher des références spatiales est: SpatialReference.org

Le système de coordonnées géographiques dans NAD 83 est difficile à trouver directement, car il fait partie de nombreuses autres projections.

Pour le rendre plus facile, celui dont vous avez besoin est EPSG 4269 .

Ce lien présente les informations de référence spatiale dans un certain nombre de formats différents. Celui spécifiquement pour PostGIS est:

INSÉRER dans les valeurs 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É [" degré ", 0,01745329251994328, AUTORITÉ [" EPSG "," 9122 "]], AUTORITÉ [" EPSG "," 4269 "]] ');

Pour répondre à votre dernier point concernant le SRID = -1, je pense qu'il est important de tester vos données avant de supposer qu'elles sont inutiles. Essayez de le faire apparaître dans certains logiciels SIG, comme QGIS ou ArcGIS . Regardez les coordonnées qui s'affichent lorsque vous déplacez le curseur. Si vous voyez des plages de nombres familières, comme y = 0 - +90 et x = -180 - +180, vous devez les reconnaître comme Latitude / Longitude. Commencer à reconnaître les plages de coordonnées qui se produisent dans les projections et les systèmes de coordonnées communs dans votre région vous aidera grandement à mesure que vous avancerez dans votre carrière.

Si vous souhaitez en savoir plus sur les projections et les systèmes de coordonnées, voici une référence fantastique: un manuel de travail ( PDF ) - John P. Snyder

Obtenez spatial
la source
J'ai réalisé que j'avais peut-être posé la mauvaise question. J'ai demandé du poisson alors que j'aurais dû demander comment pêcher. Si je recherche «GRS80 NAD83» sur SpatialReference.org , j'obtiens un résultat qui ne semble pas correct. --- Le lien que vous avez donné pour EPSG 4269 a l'affichage de la carte OpenLayers avec un cadre de délimitation autour de la plupart de l'Asie et de l'Afrique du Nord. Est-ce correct ou même significatif?
kzh
@kzh - Honnêtement, je ne sais pas pourquoi cela montre cette boîte englobante. Ce n'est pas significatif cependant. Les détails contenus dans la référence spatiale comptent et ils sont corrects.
Obtenez Spatial le
Le diplôme est légèrement inférieur pour une raison quelconque - pourquoi serait-ce? spatialreference.org a une liste plus précise ici: spatialreference.org/ref/sr-org/6867 , qui n'existe pas en tant que srid dans ma spatial_ref_systable.
Zachary Schuessler
@GetSpatial - Pourquoi avez-vous utilisé 94269 comme SRID au lieu de 4269? (puisque 4269 est l'identifiant EPSG pour NAD 83)
neubert
1
@GetSpatial - De M. Butler à spatialreference.org "tous les identifiants postgis sont préfixés par 9 pour garantir qu'ils n'entrent pas en collision avec les identifiants postgis existants."
kttii
1

@Get Spatial a raison et cela n'aurait pas pu être une meilleure réponse à cette question. en plus de lui, vous pouvez consulter spatial_ref_sys avant d'ajouter une référence spatiale.

SELECT * FROM
       spatial_ref_sys WHERE auth_srid = 4269;

vous prendrez probablement qc comme ceci:

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 est simplement une table de systèmes de coordonnées connus codés par leur SRID. vous pouvez obtenir plus d'informations ici ...

  • srid: le SRID numérique. Cela devrait être la clé primaire de la table.
  • auth_name: un nom d'autorité sous forme de chaîne. Ce paramètre est défini si ce système de coordonnées est spécifié par une autorité externe telle que EPSG.
  • auth_srid: ID numérique du système de coordonnées dans le catalogue de l'autorité ci-dessus.
  • srtext: La représentation bien connue (WKT) du système de coordonnées (comme nous l'avons décrit dans la partie 4).
  • proj4text: représentation Proj4 du système de coordonnées.

et la dernière chose est que pour le charger dans la base de données, utilisez cette commande:

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

J'espère que ça t'aide....

Aragon
la source