매우 큰 shapefile의 렌더링 성능을 향상시키는 방법은 무엇입니까?


20

100MB .dbf 및 500MB .shp 파일 구성 요소를 가진 다각형 shapefile이 있습니다. 그것이 너무 큰 이유는 그것이 전체 지구의 토지 기반으로 분류되기 때문입니다.

ArcCatalog 또는 ArcMap에서 파일을보고보기 창을 약간 이동할 때마다 전체 파일을 처음부터 다시 그려야합니다. 공간 인덱싱 및 지오 데이터베이스로 가져 오기를 시도했지만 렌더링과 관련하여 눈에 띄는 성능 향상을 제공하는 방법은 없습니다.

Esri의 도움말 페이지는 shapefile 성능을 향상시키기 위해 파일을 일반화 할 수 있다고 제안 합니다 . 이것은 분명히 효과가 있지만 정보를 잃고 싶지 않습니다. 전체 영역에서 많은 지오 프로세싱 / 쿼리를 수행하고 있기 때문에 파일을 분할하는 것은 이상적이지 않습니다. 전체 영역을 한 번에 보지 않아도 될 수 있지만 때로는 쿼리에서 선택한 파일 부분을 보는 것이 좋습니다.

렌더링 성능을 향상시키기 위해 취할 수있는 다른 방법이 있습니까?

(이론적으로 쉐이프 파일 "피라미드"를 만드는 것이 이상적입니다. ArcGIS가 왜 그런 접근 방식을 지원하지 않았는지 확신이 서지 않습니다.


2
큰 형상 파일을 갖는 것은 문제를 요구합니다. 내 경험상 대형 shapefile은 매우 쉽게 손상되는 경향이 있습니다. 파일 지오 데이터베이스에 가져 와서 손상을 피하십시오. 더 나은 그리기 성능은 추가 보너스가 될 것입니다.
Devdatta Tengshe

위에서 간략하게 언급했듯이, 큰 shapefile을 gdb로 가져 오는 것은 순수한 렌더링 관점에서 개선되지 않습니다. 일반적인 관점에서 볼 때 gdb에 큰 shp 파일이없는 것은 거의 의미가 없습니다 (모든 종류의 이유로).
youzer 2009 년

2
쉐이프 파일 대신 래스터 사용을 고려 했습니까?
Kirk Kuykendall

파일 크기가 2 기가 바이트이고 컴퓨터 메모리가 2 기가 바이트 인 경우 arcgis가이 파일 데이터를 어떻게 처리하여 전체 메모리를 소비 할 수 있을까요?
user2174920

수백만 개의 작은 다각형이있는 경우 래스터를 사용해야합니다 (토양 층을 만들지 않는 한 ...)
GIS

답변:


22

내 생각은 :

  1. 파일 지오 데이터베이스 기능 클래스에 Shape 파일 내보내기 - 내가 생각하는 그 도면 성능이 더 좋을 것입니다하지만 얼마가 확실하지 않다
  2. ArcGIS Desktop 10.0 이상을 사용하는 경우 베이스 맵 레이어 로 이동 하면 드로잉 성능이 크게 향상됩니다.
  3. 벡터 데이터에 대한 피라미드 소리가 마음에 드시면이 ArcGIS Idea 에 투표하십시오 .

3
베이스 맵 레이어 IIRC에서는 분석 또는 선택을 수행 할 수 없습니다.
blah238

4
TOC에서 두 번째 레이어가 동일한 소스를 가리키고베이스 맵 레이어가 아닌 두 번째 레이어를 가져와 얻을 수 있습니다. 일반적으로 꺼져 있지만 분석 또는 선택에 필요할 때 표시 될 수 있습니다.
PolyGeo

PolyGeo-답변 주셔서 감사합니다. 기본 레이어를 사용해 보았고 실제로 "확대 / 축소"를 클릭하면 파일의 처음부터 렌더링되지 않는 성능이 크게 향상되었습니다. blah238의 의견에 대해 제안한 해결 방법은 일부 프로젝트에서 작동 할 수 있지만 기본 계층의 사용을 제한하는 추가 사항은 기호를 사용하여 dbf를 시각화 할 수 없다는 것입니다. 이 제한 사항으로 기준 파일이 아닌 참조 용 파일을 생성 한 다음 필요할 때 "실제"레이어의 숨기기를 해제 할 수 있습니다. 정말 좋은 해결책은 아닙니다. 제안한대로 "피라미드"아이디어를 투표 할 것입니다!
youzer

6

ArcMap 성능을 개선하는 데 도움이되는 많은 팁이 있지만 여기에 내가 사용한 세 가지 제안이 있습니다.

  1. 데이터 프레임 좌표계가 내 shapefile 및 TOC에있는 다른 레이어와 일치하는지 확인합니다. 레이어가 적을수록 더 좋습니다.
  2. 투명도 나 다른 복잡성없이 간단한 선과 채우기를 기반으로 한 기호 만 사용합니다.
  3. 개요와 가까이 이동하는 기능이 모두 필요한 경우 돋보기 또는 뷰어 사용을 고려하십시오.

일반적으로 매우 좋은 조언입니다. 나는 실제로 초기 테스트 에서이 모든 것을 구현했습니다. 매우 큰 피처 클래스 / shapefile을 처리하려면 더 많은 / 다른 트릭이 필요합니다.
youzer

4

레이어가 대규모로 표시되지 않도록 레이어 표시 매개 변수를 설정하여 렌더링을 향상시킬 수 있습니다 (예 :> 1 : 10,000). 레이어 속성에서이 옵션을 찾을 수 있습니다. 레이어 속성> 일반 탭> "축소시 레이어 표시 안함 ..."

또한 저장 위치가 중요합니다. 예를 들어, 대역폭이 낮은 오래된 서버에 저장 한 경우 성능이 저하됩니다. 나는 정기적으로 서버에서 1GB + 벡터 데이터를 처리하므로 시스템 사양을 업데이트 해야하는지 여부를 알 수 있습니다 (참고로 12GB RAM, 2 세대 i7, 평균 그래픽 카드를 실행 중입니다).

여기에 이미지 설명을 입력하십시오


3

쿼리를하려면 맵을 렌더링해야합니까? 파이썬 스크립트를 실행하고지도를 그리지 않고 데이터에 액세스하면 어떻게 되나요? 나는 당신의 정확한 과정, 요구 등을 확신하지 못하지만 생각입니다.


3

Aaron의 답변 에 대한 후속 조치로 정의 쿼리를 사용하여 시각화에 반환되는 결과 수를 제한 할 수 있습니다 (분석 포함-선택과 매우 유사하다고 생각합니다). 특정 시점에서 모든 기능을 볼 필요가없고 영역을 톤으로 전환하지 않는 경우, 정의 쿼리는 실행 가능한 솔루션 일 수 있지만 질문이나 요구에 대한 정확한 답변은 아닙니다.


3

당신의 좌절감을 들었습니다. 나는 일반적으로 이와 같은 대형 shapefile로 작업하며 일반적으로 디스플레이 문제가 없습니다. 위의 모든 의견, 특히 데이터 프레임을 포함하여 모든 것이 동일한 투영에 있는지 확인하는 데 동의합니다. 파일을 로컬로 복사했으며 네트워크를 통해 파일에 액세스하려고하지 않습니까? 이 크기의 셰이프 파일에 표시 문제를 일으키는 한 가지 이유는 스트림 네트워크 에서처럼 정점이 너무 많은 경우입니다. 내가 찾은 유일한 해결책은 즉시 레이어 정의를 수행하는 Python 스크립트를 작성하여 한 번에 몇 개만 그리는 것입니다. 또 다른 것은 컴퓨터 그래픽 메모리와 그래픽 카드를 업데이트하는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.