셰이프 파일에서 피처의 순서를 변경하는 방법은 무엇입니까?


18

shapefile이 있고 피처의 순서를 변경하고 싶습니다. 가능합니까?

이 shapefile을 모바일 앱에 포함하고 있기 때문에 shapefile의 기능을 정렬하고 싶습니다. 응용 프로그램은 기능 목록을 표시하며로드 할 때 정렬을 수행 할 수는 있지만 정렬하는 것을 선호합니다.


4
목표는 합법적이며 평균은 그렇지 않습니다. 정렬이 필요한 경우 쿼리 결과를 사용하고 정렬되어 있다고 가정하지 마십시오.
GuillaumeC

답변:


6

ArcMap에서 속성 테이블을 열고 열 헤더를 마우스 오른쪽 버튼으로 클릭하고 단일 필드에 대해 오름차순 정렬 / 내림차순 정렬 ...을 선택할 수 있습니다.

여러 필드의 경우 고급 정렬을 클릭하여 여러 필드를 선택합니다.

참고 : 예를 들어, 위의 방법을 사용할 때 현재 정렬 (이 맵 / mxd에만 저장 됨)을 기반으로 순차 ID 필드를 추가하면 기능 클래스의 원래 OID / ObjectID로 정렬됩니다.

레코드를 영구적으로 정렬하고 새 모양 파일을 출력하는 ArcScript가 있습니다. http://arcscripts.esri.com/details.asp?dbid=16771

'기능 순서'를 명시 할 때 이것이 목차 / 기호 수준의 도면 순서가 아닌 속성 테이블에있는 순서임을 희망합니다.



7

다음은 GDAL / OGR 명령 줄 도구를 사용하여 정렬 된 새 모양 파일을 다시 작성하는 솔루션 ogr2ogr입니다.

예를 들어, shapefile orig.shp에는 volume정렬 할 숫자 필드 가 있습니다. 이 특정 SQL 문은 역 정렬 (with DESC)을 수행하여 큰 volume값을 가진 기능이 작은 값을 가진 기능 (아래)에 그려집니다.

ogr2ogr -sql "SELECT * FROM orig ORDER BY volume DESC" sorted.shp orig.shp

5

arcinfo 라이센스에 액세스 할 수 있는 경우 레코드를 새 shapefile 또는 gdb fc 기반 공간 또는 속성 정렬에 기록하는 (데이터 관리 도구 상자)에서 정렬 을 사용할 수 있습니다.


불행히도 그것은 모양이 아닌 FGDB와 함께 작동합니다.
tato

1
tato,이 도구는 입력 및 출력으로 fgdb 또는 shapefile과 함께 작동합니다. 위의 의견이 무엇을 의미하는지 모르겠습니다.
gotchula


2

shapefile 레이어를 정렬하는 매우 빠르고 매우 쉬운 방법입니다 (다양한 필드 사용).

1-shapefile을 CSV로 내보내고 (세미콜론과 같은 올바른 구분 기호 선택) "계층 옵션"-> "AS WKT"를 사용하여 GEOMETRY를 추가하십시오.

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

2-LIBREOFFICE (calc)를 사용하여 file.csv를 열고 MENU-> DATA-> SORT (매우 직관적이고 강력하며 매우 빠른)를 사용하십시오 (정렬 키, 오름차순 및 내림차순 옵션과 같은 3 개의 열을 사용하여 즉시 정렬 50000 기능 및 i 매우 느린 노트북이 있습니다;))

3-LIBREOFFICE (calc)의 파일을 "텍스트 CSV"로 다시 저장하십시오 ( "필터 설정 편집"을 표시하고 구분 기호를 '세미콜론'으로 선택하고 libreoffice의 경고는 중요하지 않으며 CSV처럼 저장하고 구분 기호로 '세미콜론'을 선택하십시오)

4-Qgis에서 '레이어 추가'메뉴-> 구분자 텍스트 레이어 추가에서 새 file.csv (및 정렬)를 엽니 다.

장점 :-매우 빠르고 매우 다양한 필드에서 정렬-UTF_8 인코딩 데이터로 작동

단점 :-LIBREOFFICE 필요 (하지만 오픈 소스 소프트웨어 임)

콘솔 (BASH)을 사용하여 정렬하는 대체 방법 (포인트 2 및 3, 가장 빠름)

  • 콘솔을 열고 file.csv가있는 곳으로 이동하십시오.

    키를 사용하여 정렬 파일을 원한다고 가정하십시오.

    필드 6 (데스크) + 필드 1 (아센) + 필드 3 (데스크)

    따라서 명령은 다음과 같습니다.

    정렬 -t ';' -k6,6r -k1,1 -k3,3r file.csv> 파일 _sort.csv

    노트:

    • "정렬 키"에 추가해야하는 모든 열 번호 'n'(필드)에 대해 -kn, n을 추가 할 수 있습니다.
    • n, n마다 'r'을 추가하면 역 모드 (하강)로 정렬됩니다.
    • -t param을 사용하여 csv 파일에 사용 된 문자 구분 기호를 전달해야합니다.

다른 방법은 배쉬 (콘솔)를 사용하여, LibreOffice와하지 정렬하려면 :
Juanma 글꼴

-3
  1. CSV로 데이터 내보내기
  2. Excel로 열기 데이터로 이동 ---- 정렬 --- 선택을 확장하면 완료됩니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.