이득:
- 버퍼, 교차점, 공간결합, 근린지역 등 GIS 분석을 AI로 설계하고 단계별로 구성하는 능력
- 자연어로부터 속성 및 공간 쿼리(SQL/표현식)를 생성하고 이를 QGIS/PostGIS 환경에 적용하는 능력
- 위상적 일관성, 투영 적합성 및 면적/길이 논리를 통해 GIS 분석 결과를 검증하는 기능
GIS(Geographic Information System, 영어로 GIS)는 위치 데이터를 저장, 쿼리, 분석 및 매핑하는 시스템의 총칭입니다. 측량 엔지니어의 일상 업무 대부분은 여기에서 이루어집니다. "이 하천에서 50미터보다 더 가까운 구획은 무엇입니까?", "이 두 레이어가 겹치는 영역은 어디입니까?", "동네당 건물 수는 몇 개입니까?" 공간 분석을 활용하는 등의 질문에 대한 답변을 생성합니다. 이번 단원에서는 인공 지능을 사용하여 이러한 분석을 설계하고, 자연어에서 쿼리를 생성하고, 이를 QGIS/PostGIS 환경에 적용하는 방법을 다룹니다. 원리: AI는 분석을 구성하고 쿼리를 작성합니다. 결과의 유효성은 투영, 토폴로지 및 논리 제어를 통해 엔지니어에게 그대로 유지됩니다.
먼저 기본 용어. 벡터 데이터는 점, 선, 다각형(구획, 도로, 우물)으로 세상을 나타냅니다. 래스터 데이터는 셀/픽셀 그리드(고도 모델, 위성 이미지)로 세계를 나타냅니다. 속성은 도형(필지 면적, 소유자, 섬/필지 번호)과 관련된 테이블 정보입니다. 버퍼는 형상 주위의 특정 거리에 생성되는 영역입니다. 공간 조인은 공간 관계(각 건물과 이웃)를 기반으로 두 레이어를 일치시킵니다. 토폴로지는 기하학 사이의 인접/겹침/간격 규칙입니다.
GIS 분석에서 AI의 역할
AI는 세 가지 구체적인 장소에서 GIS를 가속화합니다.
- 분석 디자인. "질문에 답하기 위해 어떤 도구를 사용하여 어떤 레이어, 어떤 순서로 처리됩니까?" 질문에 대한 단계별 계획이 제시됩니다. 이는 특히 복잡한 다단계 분석에서 사고 부하를 줄여줍니다.
- 쿼리 생성. 자연어 요청을 QGIS 표현식, SQL, PostGIS 함수로 변환합니다. 필터 표현식에 "500m² 미만의 면적과 농업적 성격을 지닌 구획"이라는 요청을 넣습니다.
- 워크플로 및 코드 생성. 이는 반복 분석을 Python/PyQGIS 스크립트로 변환합니다(이 주제는 10단원과 11단원에서 더 자세히 설명합니다).
그러나 AI에는 중요한 사각지대가 있습니다. 즉, 데이터를 보지 않고 레시피만 볼 뿐입니다. 레이어가 어떤 좌표계에 있는지, 속성 열의 정확한 이름, 데이터가 깨끗한지 여부 등을 알 수 없습니다. 따라서 생성된 쿼리는 구문적으로는 정확하지만 데이터에서는 잘못될 수 있습니다.
주의: 거리 및 면적 계산은 미터법(투영) CRS에서만 정확합니다. 50m 버퍼를 지리적 좌표(도)에서 직접 가져오면 도계 혼동으로 인해 완전히 부정확한 결과가 나옵니다. 분석하기 전에 레이어를 적절한 투영에 넣으세요.
단계별: 공간 분석 구성
샘플 질문: "하천에서 100m보다 가까운 건축 허가가 있는 구획을 찾으십시오."
- 입력과 CRS를 명확히 합니다. 하천 레이어(라인), 필지 레이어(폴리곤)는 둘 다 미터법 CRS(예: TUREF/TM33)에 있어야 합니다.
- 단계를 계획하십시오. AI의 경우: 스트리밍할 100m 버퍼 → 플롯과의 교차/선택 → 속성에서 "라이센스가 부여된" 필터 → 결과 수. 각 단계의 시퀀스와 출력을 작성해 보겠습니다.
- 쿼리가 생성되었습니다. 필터 표현식("status" = 'licensed')과 선택 논리를 QGIS/PostGIS로 변환합니다.
- 작은 샘플로 테스트하십시오. 전체 데이터가 아닌 작은 부분 집합을 대상으로 분석을 실행하고 결과를 시각적으로 확인합니다.
- 결과를 확인합니다. 카운트가 합리적인가(순위)? 선택한 구획이 실제로 하천에 가깝습니까(시각적/토폴로지 확인)? 필드가 의미가 있나요?
세 가지 미니 케이스: 숫자로 알아보기
사례 1 — 학위 범퍼 재해. 인턴은 WGS84 geo CRS의 소포 레이어에 100 단위 버퍼를 직접 적용했습니다. 그 결과 반경이 약 11km(1도 ~111km)인 터무니없는 영역이 생성되었습니다. 순위 확인("버퍼 영역은 소포 크기의 수천 배일 수 없습니다")에서 즉시 오류가 표시되었습니다. 레이어를 미터법 CRS로 가져왔을 때 버퍼는 100m로 정확했습니다.
사례 2 - 열 이름이 잘못되었습니다. AI는 "농업에 적합한 소포"에 대해 "자격을 갖춘" = '농업'이라는 표현을 생성했습니다. 반면 열의 실제 이름은 PLOT_VASF이고 값은 FIELD였습니다. 쿼리에서 오류 없이 0개의 결과가 반환되었습니다. 엔지니어가 속성 테이블을 열어 실제 열 이름과 값을 AI에 전달하자 쿼리가 개선됐다. 교훈: AI는 열 이름을 구성할 수 있습니다. 실제 회로도를 제공합니다.
사례 3 - 토폴로지 문제. 인접한 두 구역 경계층에는 작은 간격(슬라이버)과 겹침이 있었습니다. AI 기반의 '총 면적' 분석은 이러한 오류로 인해 실제 총계에서 약 2% 정도 벗어났습니다. 토폴로지 제어 및 수정 후 영역이 일관되게 되었습니다. 교훈: 분석 결과는 입력 형상만큼만 깨끗합니다.
약한 프롬프트 / 강한 프롬프트
약한 프롬프트:
하천 근처의 필지를 찾는 쿼리를 작성하세요.
강력한 프롬프트:
과제: QGIS를 위한 공간 분석 구성 및 표현을 생성합니다. 컨텍스트:- stream_layer: 선, CRS EPSG:5256 (TUREF/TM33)-parcel_layer: 다각형, CRS EPSG:5256, 속성 열: ADA_NO, Plot_NO, STATUS(값: '면허 있음', '면허 없음'), AREA_M2Question: 하천에 100m보다 가까운 소포를 선택하고 STATUS = '면허 있음', 개수와 총계 제공 지역. 요청: 1) 단계 순서를 지정합니다(버퍼 -> 공간 선택 -> 속성 필터). 2) 각 단계에서 어떤 도구를 사용할지 작성합니다. 3) 거리/면적에 대한 미터법 CRS 요구 사항을 상기시켜주세요. 4) 결과 단계(순위 + 시각적 제어)를 확인합니다. 추가하다.
강력한 프롬프트는 실제 열 이름, CRS, 값 집합 및 유효성 검사 단계를 제공합니다. 출력이 데이터에 적합합니다.
복사 가능한 템플릿 4개
1) 분석 계획 작성:
다음 공간 질문에 답하기 위한 단계별 GIS 작업 흐름을 작성하세요. 각 단계에서 입력 레이어, 사용된 도구, 출력 레이어를 지정하세요. 메트릭 CRS가 필요한 단계를 확인하세요. 질문: [질문]. 레이어: [목록]
2) 자연어를 이용한 QGIS 표현:
다음 필터를 QGIS 속성 표현식으로 변환하세요. 주어진 열 이름과 값만 사용하세요. 기둥 피팅. 불확실성이 있는지 물어보십시오.열/값: [구성표]. 요청: [필터]
3) PostGIS 쿼리:
다음 공간 분석(ST_ 함수)을 위해 PostGIS SQL을 작성합니다. 도형의 SRID[srid]를 가정합니다. 거리는 미터법이어야 합니다. 쿼리를 설명하고 유효성 검사를 위해 해시 쿼리를 추가합니다. 분석: [정의]
4) 결과 합리성 확인:
합리성을 위해 다음 GIS 분석 결과를 확인하십시오: 결과 수 순위, 필드/길이 논리, null/중복 레코드, CRS 준수. 의심스러운 점을 나열하고 가능한 원인을 작성하십시오. 결과 요약: [요약]
GIS 분석 도구 비교
차량
무엇을
일반적인 사용법
주의
버퍼
주변 거리 면적
가드 밴드, 근접
미터법 CRS가 필요합니다.
교차
공용 면적을 뺍니다.
갈등 분석
토폴로지는 깨끗해야 합니다.
공간 조인
위치별 일치
건물-주변 관계
관계 유형(내부/교차)
디졸브(결합)
동일한 속성을 융합합니다.
경계 단순화
속성 선택
클립
한도에 따라 삭감
작업 공간 제한
경계 기하학이 정확합니까?
일반적인 실수
- 지리적 CRS에서 거리/면적을 계산합니다. 분석 전에 미터법 투영으로 전환하지 않습니다.
- AI가 만든 열 이름을 사용합니다. 실제 계획을 제공하지 않습니다. 자동 0 결과.
- 깨진 토폴로지가 있는 데이터로 분석을 수행합니다. 간격/겹침으로 인해 공간 및 계산 오류가 발생합니다.
- 공간 관계의 유형을 혼동합니다. "내부"와 "교차"는 서로 다른 결과를 나타냅니다.
- 결과에 순위 통제를 적용하지 않습니다. 터무니없는 필드/숫자를 알아차리지 못합니다.
- 모든 데이터를 맹목적으로 분석합니다. 작은 샘플을 테스트하지 않고 빅데이터에 적용합니다.
요약하면
GIS 분석의 인공지능; 워크플로 계획, 자연어 요청을 쿼리로 변환, 코드 생성을 위한 강력한 도우미입니다. 하지만 AI는 데이터를 보지 못합니다. CRS, 실제 열 이름, 토폴로지 품질을 제공해야 합니다. 가장 중요한 규칙은 거리 및 면적 계산이 미터법 CRS에서만 정확하다는 것입니다. 각 결과의 순서, 위상적 일관성, 논리를 확인하세요. 작은 표본으로 테스트하지 않고 빅데이터에 적용하지 마세요.
응용과제
공간적 질문을 선택하세요(예: "도로에서 25m 미만의 건물"). 레이어, 해당 CRS 및 실제 속성 열 이름을 입력합니다. AI가 분석 계획과 QGIS 표현을 단계별로 생성하도록 합니다. 그런 다음 세 가지 확인을 통해 출력을 테스트합니다. (1) 사용된 메트릭 CRS, (2) 열 이름이 실제 스키마와 일치하는지, (3) 순서대로 합당한 결과 수입니다.
체크리스트
- [ ] 레이어를 미터법 CRS(거리/면적용)로 가져왔습니다.
- [ ] 실제 속성 열 이름과 값을 AI에 부여했습니다.
- [ ] 분석 단계와 도구를 계획했습니다.
- [ ] 공간 관계 유형(내부/교차)을 올바르게 선택했습니다.
- [ ] 입력 기하학의 토폴로지를 확인했습니다.
- [ ] 먼저 작은 샘플을 대상으로 분석을 테스트했습니다.
- [ ] 순위와 논리에 대한 결과를 확인했습니다.
- [ ] 엔지니어 승인을 위해 최종 의견을 보관했습니다.