SRID của shapefiles c điều tra là gì?


9

Tôi đã tải xuống các tập tin quận từ:

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

Tôi không thể tìm ra SRID để sử dụng với họ. Khi tôi đang cố gắng tạo một tệp lớp từ đó ./manage.py ogrinspect ..., tôi nhận được SRID -1trong trường đa giác. Tôi không nghĩ rằng điều này là đúng.

GDAL đã cho tôi Proj4 của +proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs.

Tôi biết SRID -1 có nghĩa là không xác định. Điều đó sẽ không làm cho hình học của tôi trở nên vô dụng? Làm thế nào tôi có thể tìm ra SRID để sử dụng?

Tôi thực sự mới đối với GIS. Tôi đã bỏ lỡ những ngày khi Trái đất phẳng.

Điều này cũng có thể hữu ích:

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)

Câu trả lời:


18

Bước đầu tiên để xác định phép chiếu chính xác của bất kỳ lớp nào, là tìm thông tin chiếu, nếu có, đi kèm với lớp của bạn. Trong trường hợp của một Shapefile, giống như những gì bạn đã tải xuống từ C Điều tra về địa chỉ , thông tin đó được chứa trong một .prjtệp, viết tắt của Phép chiếu.

Dưới đây là nội dung của tệp chiếu từ dữ liệu điều tra dân số:

GEOGCS ["GCS_North_American_1983", DATUM ["D_North_American_1983", SPHEROID ["GRS_1980", 6378137,298.257222101]], PRIMEM ["Greenwich", "

Các phần chính của điều này, là từ đầu tiên có nghĩa là GEOGCSGeographic Coordinate System , chuỗi DATUM : D_North_American_1983, SPHERIOD : GRS_1980, và phần cuối UNIT : Degree.

Chúng dễ dàng khớp với định nghĩa Proj4 mà bạn nhận được:+proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs

Bạn có thể thấy rằng mốc và ellipsoid, khớp với mốc và mốc trong ".prj". Các longlatphương tiện Longitude/Latitude, mà được đo bằng đơn vị của Degrees, mà phù hợp với ".prj chưa" tập tin.

Không có "defs" vì không cần thêm thông tin để xác định Hệ thống tọa độ địa lý.

Một trang web để tìm kiếm các tài liệu tham khảo không gian là: SpatialReference.org

Hệ thống tọa độ địa lý trong NAD 83 khó có thể đưa ra trực tiếp, bởi vì nó là một phần của nhiều dự đoán khác.

Để làm cho nó dễ dàng hơn, cái bạn cần là EPSG 4269 .

Liên kết này trình bày thông tin tham chiếu không gian trong một số định dạng khác nhau. Một cách cụ thể cho PostGIS là:

XÁC NHẬN vào các giá trị spatial numf_sys (srid, auth_name, auth_srid, proj4text, srtext) (94269, 'epsg', 4269, '+ proj = longlat + ellps = GRS80 + datum = NAD83 + no_def "North_American_Datum_1983", SPHEROID ["GRS 1980", 6378137,298.257222101, AUTHORITY ["EPSG", "7019"]], AUTHORITY ["EPSG", "6269"]], PRIM, " EPSG "," 8901 "]], UNIT [" độ ", 0,01745329251994328, AUTHORITY [" EPSG "," 9122 "]], AUTHORITY [" EPSG "," 4269 "]] ');

Để giải quyết điểm cuối cùng của bạn về SRID = -1, tôi nghĩ điều quan trọng là phải kiểm tra dữ liệu của bạn trước khi bạn cho rằng chúng vô dụng. Cố gắng đưa nó lên trong một số phần mềm GIS, như QGIS hoặc ArcGIS . Nhìn vào tọa độ được hiển thị khi bạn di chuyển con trỏ xung quanh. Nếu bạn thấy các dãy số quen thuộc, như y = 0 - +90 và x = -180 - +180, bạn sẽ nhận ra các phạm vi này là Vĩ độ / Kinh độ. Bắt đầu nhận ra các phạm vi tọa độ xảy ra trong các dự báo và hệ tọa độ chung trong khu vực của bạn sẽ giúp bạn rất nhiều khi bạn tiến lên trong sự nghiệp.

Nếu bạn quan tâm đến việc tìm hiểu thêm về các hệ thống chiếu và tọa độ, đây là một tài liệu tham khảo tuyệt vời: Sách hướng dẫn làm việc ( PDF ) - John P. Snyder


Tôi đã nhận ra rằng tôi có thể đã hỏi sai câu hỏi. Tôi hỏi cá khi tôi nên hỏi làm thế nào để câu cá. Nếu tôi tìm kiếm 'GRS80 NAD83' tại SpatialReference.org , tôi nhận được một kết quả không chính xác. --- Liên kết bạn đã cung cấp cho EPSG 4269 có màn hình bản đồ OpenLayers với hộp giới hạn ở hầu hết châu Á và Bắc Phi. Điều này đúng hay thậm chí có ý nghĩa?
kzh

@kzh - Thật lòng tôi không biết tại sao nó lại hiển thị cái hộp giới hạn đó. Nó không đáng kể mặc dù. Các chi tiết có trong tài liệu tham khảo không gian là những gì được tính và chúng là chính xác.
Nhận không gian

Bằng cấp hơi bị tắt vì một số lý do - tại sao điều đó sẽ được? spatialreference.org có một danh sách chính xác hơn ở đây: spatialreference.org/ref/sr-org/6867 , không tồn tại dưới dạng srid trong spatial_ref_sysbảng của tôi .
Zachary Schuessler

@GetSpatial - Tại sao bạn sử dụng 94269 làm SRID thay vì 4269? (vì 4269 là số nhận dạng EPSG cho NAD 83)
neubert

1
@GetSpatial - Từ Mr Butler tại spatialreference.org "tất cả các ID postgis đều có tiền tố là 9 để đảm bảo rằng chúng không va chạm với ID postgis hiện có."
kttii

1

@Get Spatial là đúng và nó không thể là câu trả lời tốt hơn cho câu hỏi này. ngoài anh ta, bạn có thể kiểm tra spatial_Vf_sys trước khi thêm bất kỳ tham chiếu không gian nào.

SELECT * FROM
       spatial_ref_sys WHERE auth_srid = 4269;

có lẽ bạn sẽ mất sth như thế này:

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_Vf_sys chỉ là một bảng gồm các hệ tọa độ đã biết được khóa bởi SRID của chúng. bạn có thể biết thêm thông tin ở đây ...

  • srid: SRID số. Đây phải là khóa chính của bảng.
  • auth_name: Một tên quyền như một chuỗi. Điều này được đặt nếu hệ thống tọa độ này được chỉ định bởi cơ quan bên ngoài như EPSG.
  • auth_srid: ID số của hệ tọa độ trong danh mục của cơ quan trên.
  • srtext: Biểu diễn văn bản nổi tiếng (WKT) của hệ tọa độ (như chúng tôi đã mô tả trong phần 4).
  • proj4text: Biểu diễn Proj4 của hệ tọa độ.

và điều cuối cùng là để tải nó vào cơ sở dữ liệu, hãy sử dụng lệnh này:

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

Tôi hy vọng nó sẽ giúp bạn....

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.