Census.gov şekil dosyalarının SRID'si nedir?


9

İlçe dosyalarını şuradan indirdim:

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

Onlarla hangi SRID'yi kullanacağımı anlayamıyorum . Ben bir sınıf dosyası oluşturmak için çalışırken ./manage.py ogrinspect ..., ben bir -1çokgen alanında bir SRID olsun . Bunun doğru olduğunu düşünmüyorum.

GDAL verdi bana Proj4 arasında +proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs.

-1 SRID'sinin bilinmediğini biliyorum. Bu benim geometrilerimi işe yaramaz mı? Hangi SRID'yi kullanacağımı nasıl anlayabilirim?

CBS için gerçekten yeniyim. Dünyanın düz olduğu günleri zaten özlüyorum.

Bu da yararlı olabilir:

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)

Yanıtlar:


18

Herhangi bir katmanın doğru projeksiyonunu belirlemenin ilk adımı, katmanınızla birlikte gelen projeksiyon bilgilerini bulmaktır. A durumunda, Census.gov'danShapefile indirdiğiniz gibi , bu bilgiler bir dosyada bulunur, Projeksiyon kısaltmasıdır..prj

Sayım verilerinden projeksiyon dosyasının içeriği şunlardır:

GEOGCS [ "GCS_North_American_1983", VERİ [ "D_North_American_1983", sfero [ "GRS_1980", 6378137,298.257222101]], PRIMEM [ "Greenwich" 0], ÜNİTESİ [ "Derecesi", ,017453292519943295]]

Bu anahtar parçaları, ilk kelime olan GEOGCS araçları Geographic Coordinate System, dize DATUM : D_North_American_1983, SPHERIOD : GRS_1980ve son bölüm ÜNİTESİ : Degree.

Bunlar, aldığınız Proj4 tanımıyla kolayca eşleşir :+proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs

Gördüğünüz gibi datum ve elipsoid, ".prj" deki datum ve sferik ile eşleşir. longlatVasıta Longitude/Latitudeolarak ölçülür, Birimler arasında Degrees".prj" dosyasını eşleşir.

Coğrafi Koordinat Sistemini tanımlamak için ek bilgi gerekmediği için "kusur yok".

Mekansal referansları aramak için bir site: SpatialReference.org

NAD 83'teki Coğrafi Koordinat Sistemini doğrudan bulmak zordur, çünkü diğer birçok projeksiyonun bir parçasıdır.

Kolaylaştırmak için ihtiyacınız olan EPSG 4269 .

Bu bağlantı uzamsal referans bilgilerini bir dizi farklı formatta sunar. PostGIS için özel olarak:

Spatial_ref_sys (srid, auth_name, auth_srid, proj4text, srtext) değerlerine (94269, 'epsg', 4269, '+ proj = longlat + ellps = GRS80 + datum = NAD83 + no_defs', 'GEOGCS ["NAD83", DATUM [ "North_American_Datum_1983", KÜRESEL ["GRS 1980", 6378137,298.257222101, YETKİ ["EPSG", "7019"]], YETKİ ["EPSG", "6269"]], PRIMEM ["Greenwich", 0, YETKİ [ EPSG", "8901"]], BİRİM [ "derecesi", ,01745329251994328 YETKİ [ "EPSG", "9122"]] YETKİ [ "EPSG", "4269"]] ');

SRID = -1 ile ilgili son noktanıza hitap etmek için, işe yaramaz olduklarını varsaymadan önce verilerinizi test etmeniz önemlidir. QGIS veya ArcGIS gibi bazı CBS yazılımlarında ortaya çıkarmaya çalışın . İmleci hareket ettirirken gösterilen koordinatlara bakın. Eğer y = 0 - +90 ve x = -180 - +180 gibi tanıdık sayı aralıklarını görüyorsanız, bunları Enlem / Boylam olarak tanımanız gerekir. Bölgenizdeki ortak projeksiyonlarda ve koordinat sistemlerinde meydana gelen koordinat aralıklarını tanımaya başlamak, kariyerinizde ilerlerken size büyük ölçüde yardımcı olacaktır.

Projeksiyonlar ve koordinat sistemleri hakkında daha fazla bilgi edinmek istiyorsanız, bu harika bir referanstır: Bir Çalışma Kılavuzu ( PDF ) - John P. Snyder


Yanlış soruyu sorduğumu fark ettim. Ne zaman balık tutmam gerektiğini sorduğum zaman balık istedim. SpatialReference.org'da ' GRS80 NAD83' için arama yaparsam , doğru görünmeyen bir sonuç alırım. --- EPSG 4269 için verdiğiniz bağlantı, Asya ve Kuzey Afrika'nın çoğunda sınırlayıcı bir kutuya sahip OpenLayers harita ekranına sahiptir. Bu doğru mu, hatta anlamlı mı?
kzh

@kzh - Dürüst olmak gerekirse bu sınırlayıcı kutuyu neden gösterdiğini bilmiyorum. Yine de önemli değil. Uzamsal referansta yer alan ayrıntılar, önemli olan ve doğrudur.
Mekânsal

Derecesi bir sebepten dolayı biraz kapalı - neden böyle olsun? spatialreference.org'un burada daha doğru bir listesi var: spatialreference.org/ref/sr-org/6867 , ki bu benim masamda bir srid olarak mevcut değil spatial_ref_sys.
Zachary Schuessler

@GetSpatial - Neden 4269 yerine SRID olarak 94269 kullandınız? (
4269'dan

1
@GetSpatial - spatialreference.org adresindeki Bay Butler'dan "mevcut postgis kimlikleriyle çarpışmadığından emin olmak için tüm postgis kimlikleri 9 ile işaretlenmiştir."
kttii

1

@ Spatial haklı ve bu sorunun cevabı daha iyi olamazdı. Buna ek olarak, herhangi bir uzamsal referans eklemeden önce spatial_ref_sys'i kontrol edebilirsiniz.

SELECT * FROM
       spatial_ref_sys WHERE auth_srid = 4269;

muhtemelen şöyle sth alacaksınız:

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 yalnızca SRID'leri tarafından anahtarlanan bilinen koordinat sistemlerinin bir tablosudur. burada daha fazla bilgi edinebilirsiniz ...

  • srid: Sayısal SRID. Bu tablonun birincil anahtarı olmalıdır.
  • auth_name: Dize olarak bir yetki adı. Bu koordinat sistemi EPSG gibi bir dış otorite tarafından belirlenirse ayarlanır.
  • auth_srid: Yukarıdaki otorite kataloğundaki koordinat sisteminin sayısal kimliği.
  • srtext: Koordinat sisteminin İyi Bilinen Metin (WKT) gösterimi (4. bölümde açıklandığı gibi).
  • proj4text: Koordinat sisteminin Proj4 gösterimi.

ve son şey veritabanına yüklemek için bu komutu kullanın:

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

umarım sana yardımcı olur ....

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.