SRID ของ census.gov shapefiles คืออะไร


9

ฉันดาวน์โหลดไฟล์เคาน์ตีจาก:

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

ฉันไม่สามารถคิดได้ว่าจะใช้SRIDอะไรกับพวกเขา เมื่อฉันพยายามสร้างไฟล์คลาส./manage.py ogrinspect ...ฉันจะได้รับ SRID -1ในฟิลด์รูปหลายเหลี่ยม ฉันไม่คิดว่ามันถูกต้อง

GDAL ให้ฉันProj4+proj=longlat +ellps=GRS80 +datum=NAD83 +no_defsของ

ฉันรู้ว่า SRID ของ -1 หมายถึงไม่ทราบ นั่นจะทำให้รูปทรงเรขาคณิตของฉันไร้ประโยชน์หรือไม่? ฉันจะทราบได้อย่างไรว่า SRID ใดที่จะใช้

ฉันใหม่สำหรับ GIS ฉันคิดถึงวันที่โลกแบนแล้ว

สิ่งนี้อาจมีประโยชน์:

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)

คำตอบ:


18

ขั้นตอนแรกในการพิจารณาการฉายภาพที่ถูกต้องของเลเยอร์ใด ๆ คือการหาข้อมูลการฉายภาพหากมีที่มาพร้อมกับเลเยอร์ของคุณ ในกรณีของ a Shapefileเช่นเดียวกับสิ่งที่คุณดาวน์โหลดจากCensus.govข้อมูลนั้นมีอยู่ใน.prjไฟล์ย่อมาจาก Projection

นี่คือเนื้อหาของไฟล์การฉายจากข้อมูลการสำรวจสำมะโนประชากร:

GEOGCS [ "GCS_North_American_1983" DATUM [ "D_North_American_1983" ลูกกลม [ "GRS_1980" 6378137,298.257222101]] PRIMEM [ "กรีนวิช" 0], UNIT [ "ปริญญา" .017453292519943295]]

ส่วนสำคัญของเรื่องนี้เป็นครั้งแรกที่คำGEOGCSวิธีGeographic Coordinate SystemสตริงDATUM : D_North_American_1983, SPHERIOD : GRS_1980และส่วนสุดท้ายUNITDegree :

สิ่งเหล่านี้ตรงตามข้อกำหนดProj4ที่คุณได้รับ:+proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs

คุณจะเห็นว่าตัวเลขและรูปไข่ตรงกับตัวเลขและรูปทรงกลมใน ".prj" ค่าlonglatเฉลี่ยLongitude/Latitude, ซึ่งวัดเป็นหน่วยของDegrees, ซึ่งตรงกับไฟล์ ".prj"

มี "no defs" เนื่องจากไม่มีข้อมูลเพิ่มเติมที่จำเป็นในการระบุระบบพิกัดทางภูมิศาสตร์

เว็บไซต์สำหรับค้นหาการอ้างอิงเชิงพื้นที่คือ: SpatialReference.org

ระบบพิกัดทางภูมิศาสตร์ใน NAD 83 นั้นยากที่จะเกิดขึ้นโดยตรงเนื่องจากเป็นส่วนหนึ่งของการคาดการณ์อื่น ๆ

ที่จะทำให้มันง่ายขึ้นหนึ่งที่คุณต้องเป็นEPSG 4269

ลิงค์นี้นำเสนอข้อมูลอ้างอิงเชิงพื้นที่ในรูปแบบที่แตกต่างกันจำนวนหนึ่ง หนึ่งสำหรับPostGISโดยเฉพาะคือ:

แทรกลงใน spatial_ref_sys (srid, auth_name, auth_srid, proj4text, srtext) ค่า (94269, 'epsg', 4269, '+ proj = longlat + ellps = GRS80 + datum = NAD83 + no_defs', 'GEOGCS [NAD83] "North_American_Datum_1983", SPHEROID ["GRS 1980", 6378137,298.257222101, AUTHORITY ["EPSG", "7019"]], ผู้มีอำนาจ ["EPSG", "6269"]], PRIMEM ["กรีนนิช", 0, AUTHORITY EPSG", "8901"]] UNIT [ "ปริญญา" .01745329251994328 อำนาจ [ "EPSG", "9122"]] AUTHORITY [ "EPSG", "4269"]] ');

ในการพูดถึงประเด็นสุดท้ายของคุณเกี่ยวกับ SRID = -1 ฉันคิดว่าการทดสอบข้อมูลของคุณเป็นสิ่งสำคัญก่อนที่คุณจะถือว่าพวกเขาไร้ประโยชน์ พยายามที่จะนำมันขึ้นมาในซอฟต์แวร์ GIS บางอย่างเช่นQGISหรือArcGIS ดูพิกัดที่แสดงเมื่อคุณเลื่อนเคอร์เซอร์ไปรอบ ๆ หากคุณเห็นช่วงของตัวเลขที่คุ้นเคยเช่น y = 0 - +90 และ x = -180 - +180 คุณควรจำสิ่งเหล่านี้ว่าเป็นละติจูด / ลองจิจูด การเริ่มต้นรับรู้ช่วงพิกัดที่เกิดขึ้นในการคาดการณ์ทั่วไปและระบบพิกัดในพื้นที่ของคุณจะช่วยให้คุณอย่างมากเมื่อคุณก้าวไปข้างหน้าในอาชีพของคุณ

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับระบบการฉายภาพและระบบพิกัดนี่เป็นข้อมูลอ้างอิงที่ยอดเยี่ยม: คู่มือการใช้งาน ( PDF ) - John P. Snyder


ฉันรู้ว่าอาจจะถามคำถามผิด ฉันถามหาปลาเมื่อฉันควรถามวิธีการตกปลา ถ้าฉันค้นหา 'GRS80 NAD83' ที่SpatialReference.orgฉันจะได้ผลลัพธ์หนึ่งที่ไม่ถูกต้อง --- ลิงก์ที่คุณให้สำหรับ EPSG 4269 มีการแสดงแผนที่ OpenLayers พร้อมกรอบล้อมรอบส่วนใหญ่ของเอเชียและแอฟริกาเหนือ สิ่งนี้ถูกต้องหรือมีนัยสำคัญหรือไม่?
kzh

@kzh - ฉันไม่ทราบว่าทำไมมันถึงแสดงกล่องขอบเขต มันไม่สำคัญว่า รายละเอียดที่อยู่ในการอ้างอิงเชิงพื้นที่เป็นสิ่งที่นับและถูกต้อง
Spatial

ระดับปิดเล็กน้อยด้วยเหตุผลบางอย่าง - ทำไมจึงเป็นเช่นนั้น spatialreference.org มีรายชื่อที่ถูกต้องมากขึ้นที่นี่: spatialreference.org/ref/sr-org/6867ซึ่งไม่มีอยู่ในรูปแบบซีดในspatial_ref_sysตารางของฉัน
Zachary Schuessler

@GetSpatial - ทำไมคุณถึงใช้ 94269 เป็น SRID แทนที่จะเป็น 4269 (ตั้งแต่ 4269 เป็นตัวระบุ EPSG สำหรับ NAD 83)
neubert

1
@GetSpatial - จาก Mr Butler ที่ spatialreference.org "รหัส postgis ทั้งหมดจะถูกนำหน้าด้วย 9 เพื่อให้แน่ใจว่าพวกเขาจะไม่ชนกับรหัส postgis ที่มีอยู่"
kttii

1

@ รับ Spatial ถูกต้องและมันก็ไม่ได้รับคำตอบที่ดีกว่าสำหรับคำถามนี้ นอกจากเขาคุณสามารถตรวจสอบ spatial_ref_sys ก่อนที่จะเพิ่มการอ้างอิงเชิงพื้นที่ใด ๆ

SELECT * FROM
       spatial_ref_sys WHERE auth_srid = 4269;

อาจคุณจะใช้ sth เช่นนี้

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 เป็นเพียงตารางของระบบพิกัดที่รู้จักโดยใช้ SRID คุณ Cabn รับข้อมูลเพิ่มเติมได้ที่นี่ ...

  • srid: SRID ที่เป็นตัวเลข นี่ควรเป็นคีย์หลักของตาราง
  • auth_name: ชื่อผู้มีสิทธิ์เป็นสตริง นี้จะถูกตั้งค่าหากระบบพิกัดนี้ถูกระบุโดยหน่วยงานภายนอกเช่น EPSG
  • auth_srid: รหัสตัวเลขของระบบพิกัดในแคตตาล็อกของผู้มีอำนาจด้านบน
  • srtext: การเป็นตัวแทนที่รู้จักกันดีข้อความ (WKT) ของระบบพิกัด (ดังที่เราอธิบายไว้ในส่วนที่ 4)
  • proj4text: การแสดง Proj4 ของระบบพิกัด

และสิ่งสุดท้ายคือการโหลดไปยังฐานข้อมูลใช้คำสั่งนี้:

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

ฉันหวังว่ามันจะช่วยคุณ ....

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.