Làm thế nào để cải thiện hiệu suất kết xuất của một shapefile rất lớn?


20

Tôi có một shapefile đa giác có thành phần tệp .dbf 100MB và 500MB .shp. Lý do nó rất lớn, là nó được phân loại là một khu đất cho cả một quận.

Mỗi khi tôi xem tệp trong ArcCatalog hoặc ArcMap và di chuyển cửa sổ xem một chút, toàn bộ tệp cần vẽ lại từ đầu. Tôi đã thử lập chỉ mục không gian và nhập vào cơ sở dữ liệu địa lý - không cách tiếp cận nào cung cấp bất kỳ cải tiến hiệu suất đáng chú ý nào liên quan đến kết xuất.

Trang trợ giúp của Esri gợi ý rằng để cải thiện hiệu suất shapefile, người dùng có thể khái quát hóa tệp . Trong khi điều này rõ ràng sẽ hoạt động, tôi không muốn mất bất kỳ thông tin nào. Việc tách tệp lên không phải là lý tưởng vì tôi đang thực hiện nhiều truy vấn địa lý / truy vấn với toàn bộ khu vực của nó. Tôi đoán rằng tôi có thể tránh xem toàn bộ khu vực cùng một lúc - nhưng đôi khi, ví dụ, thật tốt khi xem phần nào của tệp mà truy vấn đã chọn.

Có cách tiếp cận nào khác tôi có thể thực hiện để cải thiện hiệu suất kết xuất không?

(Về lý thuyết, việc xây dựng "kim tự tháp" sẽ là lý tưởng - tôi không chắc tại sao ArcGIS chưa bao giờ hỗ trợ cách tiếp cận như vậy - ít nhất là tôi biết về ...)


2
Có một shapefile lớn như vậy, chỉ là yêu cầu rắc rối. Theo kinh nghiệm của tôi, các shapefile lớn có xu hướng bị hỏng rất dễ dàng. Nhận nó trong Cơ sở dữ liệu địa lý tệp, để tránh tham nhũng. Hiệu suất vẽ tốt hơn sẽ là một phần thưởng bổ sung.
Devdatta Tengshe

Như tôi đã lưu ý ở trên, tôi thấy rằng việc nhập một shapefile lớn vào gdb sẽ không cải thiện - từ quan điểm hoàn toàn hiển thị. Bạn hoàn toàn đúng mặc dù theo quan điểm chung, sẽ không có ý nghĩa gì khi không có tệp shp lớn trong gdb (vì tất cả các loại lý do).
youzer

2
Bạn đã cân nhắc sử dụng raster thay vì shapefile chưa?
Kirk Kuykendall

Tôi bối rối ở một điều là nếu kích thước tệp là 2gb và bộ nhớ máy tính cũng là 2gb thì arcgis sẽ xử lý dữ liệu tệp này như thế nào vì nó sẽ tạo ra bộ nhớ đầy đủ
user2174920 10/11/2015

nếu bạn có hàng triệu đa giác nhỏ, thì nên sử dụng raster là câu nói bỉ ổi (trừ khi bạn đang tạo một lớp đất ...)
Nếu bạn không biết - chỉ cần GIS

Câu trả lời:


22

Suy nghĩ của tôi là:

  1. Xuất shapefile của bạn sang lớp tính năng cơ sở dữ liệu địa lý tệp - Tôi nghĩ hiệu suất vẽ của nó sẽ tốt hơn nhưng không chắc chắn bao nhiêu
  2. Nếu bạn đang sử dụng ArcGIS Desktop 10.0 trở lên, hãy chuyển nó vào Lớp cơ sở - điều này sẽ cải thiện đáng kể hiệu suất vẽ
  3. Nếu bạn thích âm thanh của kim tự tháp cho dữ liệu vectơ, hãy chắc chắn bỏ phiếu cho Ý tưởng ArcGIS này .

3
Ngoại trừ bạn không thể thực hiện phân tích hoặc lựa chọn trên các lớp bản đồ cơ sở IIRC.
blah238

4
Nghi ngờ có thể xảy ra xung quanh bằng cách có lớp thứ hai trong TOC trỏ vào cùng một nguồn và không phải là lớp bản đồ cơ sở, thường bị tắt nhưng có thể được hiển thị khi cần phân tích hoặc lựa chọn.
PolyGeo

PolyGeo - cảm ơn câu trả lời. Tôi đã thử cơ sở và thực sự một cải tiến hiệu suất lớn là khi nhấp vào "phóng to lớp", tệp không hiển thị từ đầu. Cách giải quyết mà bạn đề xuất đưa ra nhận xét của blah238 có thể sẽ có hiệu quả từ một số dự án, nhưng tôi thấy một điều gây nghiện hạn chế việc sử dụng baselayer là bạn không thể hình dung dbf bằng cách sử dụng bất kỳ ký hiệu nào. Với giới hạn này, tôi cũng có thể tạo ra tệp để tham khảo (không phải là lớp cơ sở), sau đó bỏ ẩn lớp "thực" khi cần. Không thực sự là một giải pháp tuyệt vời .. Tôi sẽ bỏ phiếu cho ý tưởng "kim tự tháp" như bạn đề xuất!
youzer

6

Có nhiều mẹo để cải thiện hiệu suất ArcMap có thể hữu ích, nhưng đây là ba gợi ý tôi đã sử dụng.

  1. Tôi chắc chắn rằng hệ thống tọa độ Khung dữ liệu khớp với các shapefile của tôi và bất kỳ lớp nào khác tôi có trong TOC; nhưng càng ít lớp được hiển thị thì càng tốt.
  2. Tôi chỉ sử dụng hệ thống ký hiệu của mình dựa trên các dòng đơn giản và điền mà không có tính minh bạch hoặc các phức tạp khác.
  3. Nếu bạn cần cả tổng quan và khả năng xoay xung quanh, hãy xem xét sử dụng kính lúp hoặc trình xem.

Nói chung lời khuyên rất tốt. Tôi thực sự đã thực hiện tất cả những điều này trong các thử nghiệm ban đầu của mình - có vẻ như cần nhiều thủ thuật / khác nhau hơn để đối phó với các lớp tính năng / shapefiles rất lớn.
youzer

4

Bạn có thể cải thiện kết xuất bằng cách đặt các tham số hiển thị lớp để lớp sẽ không hiển thị ở tỷ lệ lớn (ví dụ> 1: 10.000). Bạn có thể tìm thấy tùy chọn này trong các thuộc tính lớp: Thuộc tính lớp> Tab chung> "Không hiển thị lớp khi thu nhỏ ngoài ..."

Ngoài ra, vấn đề vị trí lưu trữ - ví dụ: nếu nó được lưu trữ trên một máy chủ cũ có băng thông kém, bạn được đảm bảo có hiệu suất kém. Tôi thường xuyên xử lý dữ liệu vectơ 1GB + trên một máy chủ, điều này khiến tôi đặt câu hỏi liệu thông số hệ thống của bạn có cần được cập nhật hay không (để tham khảo, tôi đang chạy RAM 12GB, i7 thế hệ 2, card đồ họa trung bình).

nhập mô tả hình ảnh ở đây


3

Bạn có cần kết xuất bản đồ để thực hiện các truy vấn của mình không? Điều gì nếu bạn chạy các kịch bản python và truy cập dữ liệu mà không cần vẽ bản đồ? Tôi không chắc chắn quá trình chính xác của bạn, nhu cầu, vv, nhưng một suy nghĩ.


3

Theo một câu trả lời của Aaron , bạn cũng có thể sử dụng truy vấn định nghĩa để giới hạn số lượng kết quả được trả về để trực quan hóa (và nó bao gồm phân tích - tôi tin rằng nó hoạt động giống như một lựa chọn). Nếu không phải tất cả các tính năng đều cần thiết để xem tại bất kỳ thời điểm nào và bạn không chuyển vùng một tấn, truy vấn định nghĩa có thể là một giải pháp khả thi, mặc dù không phải là câu trả lời chính xác cho câu hỏi hoặc nhu cầu của bạn.


3

Tôi nghe thấy sự thất vọng của bạn. Tôi thường xuyên làm việc với các shapefile lớn như thế này và nói chung không có vấn đề về hiển thị. Tôi đồng ý với tất cả các ý kiến ​​trên, đặc biệt là đảm bảo mọi thứ đều nằm trong cùng một hình chiếu, bao gồm cả khung dữ liệu. Tôi giả sử bạn đã sao chép tệp cục bộ và không cố truy cập nó qua mạng? Một điều sẽ gây ra sự cố hiển thị với các shapefile kích thước này là nếu có một số lượng cực lớn, như trong một mạng truyền phát. Giải pháp duy nhất tôi tìm thấy cho việc này là tạo ra một kịch bản python để thực hiện các định nghĩa lớp một cách nhanh chóng vì vậy tôi chỉ vẽ một số ít tại một thời điểm. Một điều nữa là cập nhật bộ nhớ đồ họa và card đồ họa máy tính của 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.