Sử dụng phần mềm nguồn mở để hợp nhất các shapefiles lớn?


8

Một số nền tảng: Tôi có 2 tệp hình đa giác với khoảng 500.000 bản ghi mỗi tệp. Hai tập tin giống hệt nhau về cấu trúc trường.

Sử dụng ArcGIS 10.0 Tôi không thể hợp nhất hai tệp này bằng cách sử dụng Geoprocessing / Merge. ArcMap allways gặp sự cố ở đâu đó ở giữa quá trình.

Có phần mềm nguồn mở nào có thể làm công việc này không? QGIS có chức năng: Vector / Hợp nhất tệp hình dạng thành một, nhưng có một lỗi được báo cáo với chức năng này trong phiên bản 1.7 hiện tại. Tôi biết GDAL có thể làm rất nhiều thứ và tự hỏi liệu GDAL hoặc một số phần mềm mã nguồn mở khác có thể làm điều này đúng cách.


4
có khả năng bạn vượt quá giới hạn 2 Gb cho shapefiles không?

Câu trả lời:


18

Từ hướng dẫn GDAL:

Việc hợp nhất hai shapefiles 'file1.shp' và 'file2.shp' vào một tệp mới 'file_merged.shp' được thực hiện như sau:

% ogr2ogr file_merged.shp file1.shp
% ogr2ogr -update -append file_merged.shp file2.shp -nln file_merged

Lệnh thứ hai đang mở file_merged.shp trong chế độ cập nhật và cố gắng tìm các lớp hiện có và nối thêm các tính năng đang được sao chép.

Tùy chọn -nln đặt tên của lớp sẽ được sao chép vào.

http://www.gdal.org/ogr/drv_shapefile.html


2
--skipfailures đảm bảo bạn sẽ tiếp tục nếu bạn gặp phải một hồ sơ xấu. Tôi sẽ thêm nó nếu quá trình này mất quá nhiều thời gian.
Ragi Yaser Burhum

Cảm ơn jzl5325, đây là những gì tôi đang tìm kiếm (bên cạnh giải pháp thay thế để làm điều đó trong ArcMap). Tôi nghĩ rằng có một nhu cầu tốt cho một hướng dẫn sử dụng / hướng dẫn sử dụng cho GDAL thay vì cú pháp. Một cái gì đó giống như câu trả lời của bạn bắt đầu bằng một tác vụ: tức là hợp nhất 2 tệp shp, để chuyển đổi từ tab mapinfo sang esri shp. Một danh sách dài "để làm điều này với GDAL" sẽ rất hữu ích.
anh.hv

@ anh.hv Đồng ý. Một cái gì đó tôi rất thích làm nếu tôi có thêm một chút thời gian. Tôi nghi ngờ rằng một cái gì đó như thế sẽ không xảy ra cho đến khi A) nó là một phần của một số khóa học đại học hoặc B) Nó được tài trợ bởi một nhà tài trợ cho GDAL.
Jay Laura

Nếu bạn có nhiều tệp để hợp nhất, bạn có thể sử dụng một tập lệnh như thế này: <! - ngôn ngữ: lang-bsh -> #! / Bin / bash Dest_dir = "output" Dest_layer = "shape_file" mkdir -p "$ {Dest_dir } "i = 0 cho src_file trong nguồn / *. shp; làm tiếng vang "$ {src_file}" nếu [$ i -eq 0]; sau đó ogr2ogr "$ {Dest_dir} / $ {Dest_layer} .shp" "$ {src_file}" khác {Dest_layer} "fi i = $ ((i + 1)) đã hoàn thành
AndrewHarvey

Nếu bạn có nhiều tệp để hợp nhất, bạn có thể sử dụng tập lệnh như thế này: gist.github.com/andrewharvey/09f1b77f64c6f529e266
AndrewHarvey

3

Hãy thử chuyển đổi các shapefiles thành một cơ sở dữ liệu địa lý tệp và sau đó hợp nhất chúng trong ArcGIS.

Bạn thậm chí có thể chuyển đổi chúng trở lại hình dạng sau khi hợp nhất (trong trường hợp bạn đang cố gắng duy trì khả năng tương thích với các phần mềm khác dựa trên shapefiles).


Cảm ơn Kevin và @vad khóan. Đưa shp vào tập tin geodatabase thực sự hoạt động. Nó cũng giảm kích thước của tệp được hợp nhất xuống 4 lần so với 2 tệp hình dạng ban đầu.
anh.hv

3

Bạn có thể thử Geomerge . Tôi không chắc có bao nhiêu bản ghi có thể xử lý, nhưng miễn là cấu trúc bảng giống nhau cho tất cả các tệp tôi không gặp vấn đề gì với nó.

Các MapBrowser sẵn trên cùng một trang web cũng là một công cụ nhỏ tuyệt vời để xem nhanh chóng của shapefile mà không cần phải mở ra một gói GIS.


1

Như Kevin đã nói chuyển đổi các tệp hình dạng thành fGDB là tùy chọn tốt nhất. (Nó sẽ rất nhanh so với các tệp shp)

Bởi vì, các tệp Shape có giới hạn về dung lượng lưu trữ, tôi nghĩ rằng hai tệp hình dạng của bạn (sau khi hợp nhất) vượt quá giới hạn này. Xin vui lòng. kiểm tra xem.

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.