외부데이터 연결
안녕하세요
동영상을 보고 파이썬 콘솔에서 shp파일로는 불러와서 작업하는 아주 유용하게 사용하고 있습니다~
그런데 궁금한건 외부데이터(csv,txt .. )등의 x,y값을 이용하여 python으로 포인트를 만들고자 한다면 어떻게 하나요???
Answer 1
0
안녕하세요. 답변이 늦었습니다.
csv 등의 데이터를 통해 포인트 레이어를 생성하는 방법은 QGIS 기능 중 "테이블에서 포인트 생성" (or "Create points layer from table" 영어 버전) 기능을 활용하시어, 추가가 가능합니다.
(참고 URL : https://freegistutorial.com/how-to-create-points-from-a-table-in-qgis/)
하지만, 질문해주신 대로 python을 이용하여 포인트를 만드시고자 한다면, 아래 예시 코드와 같이 코드를 실행시켜 포인트 레이어 생성 및 추가가 가능합니다.
import processing
# 레이어 지정 (현재 qgis 프로젝트에 추가된 레이어 명을 활용)
layer = QgsProject.instance().mapLayersByName("서울시 (안심이) CCTV 설치 현황")[0]
# 일시 산출물
output_point = 'memory:output_point'
# 테이블 투 포인트 파라미터 (input은 레이어로, x와 y는 layer의 속성에서 필드명 확인 후 지정. 좌표계는 x,y 좌표의 형식에 맞게 지정)
#tabletopointParams = {'INPUT' : input, 'XFIELD' : x, 'YFIELD' : y,'TARGET_CRS' : crs, 'OUTPUT' : output_point}
tabletopointParams = {'INPUT' : layer, 'XFIELD' : '경도', 'YFIELD' : '위도','TARGET_CRS' : 'EPSG:4326', 'OUTPUT' : output_point}
# 테이블 투 포인트 실행
tabletopoint = processing.run('native:createpointslayerfromtable', tabletopointParams)
# 결과 추가 및 완료 메시지
QgsProject.instance().addMapLayer(tabletopoint['OUTPUT'])해당 코드를 실행하기 위해선, QGIS 실행 및 레이어에 csv 파일 추가가 필요합니다.
예시에 사용된 자료는 https://data.seoul.go.kr/dataList/OA-20923/S/1/datasetView.do#AXexec 에서 다운로드 받으실 수 있으며, QGIS 레이어에 추가 후 코드를 복사하여 실행해보시면 포인트 레이어가 생성되는 걸 확인하실 수 있습니다.
코드 사용 시 주의해야 할 점은,
QGIS 프로젝트에 csv 레이어가 추가되어 있어야 함 (레이어 이름과 코드의 레이어 이름을 동일하게 설정)
파라미터의 "XFIELD", "YFIELD"를 레이어의 필드명으로 설정해주어야 함
파라미터의 TARGET_CRS는 레이어의 x, y 좌표계에 따라 설정해야 함 (예시 자료는 위경도를 사용하고 있으므로 EPSG:4326 crs 를 사용하였음)
등 입니다.
저는 csv 등의 파일에서 포인트를 생성할 때는 python보단 QGIS의 기능을 더 자주 활용합니다.
그 이유는, 코드 실행을 위해선 레이어의 필드값을 확인해야 하기 때문에, 코드로 작성하는게 더 번거롭기 때문이며,
또한, 데이터를 직접 확인하여 생성된 포인트 레이어의 오류를 최소화하기 위함입니다.
질문하신 내용에 충분한 답변이 되었길 바라며, 추가적인 질문이 있다면 말씀 부탁드립니다.
감사합니다 :)
-UPWISE 답변-
6-6
0
4
0
작업형 1 유형 부분
0
9
1
수강평 이벤트
0
16
2
작업형 1 (삭제예정, 구 버전)
0
29
2
강의노트는 어디있나요?
0
17
1
노션 학습 자료 권한 요청
0
16
1
수강기간 연장 문의드립니다.
0
21
1
2유형 레이블 인코딩 VS 원핫 인코딩
0
24
3
part2강의 문의사항입니다.
0
19
2
수강기간 연장 문의드립니다.
0
26
1
디졸브 강의 관련 문의
0
81
2
섹션4 버퍼실습 자료 어디있을까요?
1
164
2
qgis에서 오차범위 내의 객체만 속성 결합을 할 수 있나요?
1
820
3
인코딩 적용관련 문의 드립니다.
1
340
1
스크립트 불러오기
1
288
1
홀삭제 좌표 지정
1
279
1
Buffer 만드는 강의에서 코드 오류인 것 같습니다.
1
379
2
강의 자료는 어디서?(포인트 5186 자료는 어디서?
1
317
1
merge 관련 문의 입니다.
2
1237
2
실전3 오류 문의
1
448
1
실전1_와이파이 소외지역
1
417
1
실습 중의 데이터 입력 오류
2
521
2
안녕하세요 향후 계획이 궁금합니다^^
1
441
1
버퍼 강의 중 VWorld StateTile 레이어
2
442
1

