QGIS를 사용하여 Matlab 시뮬레이션의 결과를 설명합니다. Matlab은 QGIS 내의 shapefile에 연결된 CSV 파일을 생성합니다.
현재 Matlab 시뮬레이션의 새로운 결과를 보여주기 위해 QGIS를 닫았다가 다시 열어야합니다.
QGIS를 닫았다가 다시 열지 않고도 CSV 파일의 속성 테이블을 다시로드 할 수 있습니까?
QGIS를 사용하여 Matlab 시뮬레이션의 결과를 설명합니다. Matlab은 QGIS 내의 shapefile에 연결된 CSV 파일을 생성합니다.
현재 Matlab 시뮬레이션의 새로운 결과를 보여주기 위해 QGIS를 닫았다가 다시 열어야합니다.
QGIS를 닫았다가 다시 열지 않고도 CSV 파일의 속성 테이블을 다시로드 할 수 있습니까?
답변:
매번 QGIS를 닫고 여는 것보다 쉽지만은 않지만 대체 워크 플로를 제안 할 수 있습니다.
이제 공간 레이어와 마찬가지로 QGIS에 뷰를 표시 할 수 있으며 공간 라이트에서 조인 된 값을 사용할 수 있습니다. 그러나 CSV를 다시 만들 때마다 가상 CSV 테이블을 삭제하고 다시 연결해야합니다. 그런 다음 QGIS를 새로 고치면 새 값이 표시됩니다. 이것은 단지 시간이 걸리며, 더 나아가 많은 뷰를 정의하고 필요한 경우 이전 뷰를 유지할 수 있습니다 ...
HTH
공간적 형식을 사용하지 않고 여전히 이것에 대한 답을 찾고있는 사람이라면, 나는 효과가있는 것을 발견했습니다.
CSV가 있고 조인을 사용하여 공간 레이어에 조인하는 경우 조인 옵션 중 하나는 레이어를 캐시하는 것입니다. 레이어의 속성으로 이동 한 다음 결합 된 데이터로 이동하고 결합 편집을 클릭하면이 옵션을 사용할 수 있습니다. 캐시 옵션 을 비활성화하면 csv가 변경된 후 데이터 계층을 다시로드 한 다음 맵을 다시 페인트하여 새로 고친 맵 뷰를 얻을 수 있습니다.
파이썬 콘솔에서 다시로드하고 다시 칠할 수 있습니다. 먼저 맵 캔버스, csv 및 레이어의 이름을 정의해야합니다.
mc = iface.mapCanvas()
layer=mc.currentLayer()
csv_layer=mc.currentLayer()
currentLayer 메소드를 사용할 때 콘솔에서 레이어의 이름을 지정할 때 레이어를 활성화해야합니다 ( '현재 레이어'여야 함).
그런 다음 결합에 대해 캐시 옵션을 해제로 설정 한 경우 csv를 변경 한 후 Python 콘솔에서 다음 두 명령을 사용하여 맵을 다시 그릴 수 있습니다.
csv_layer.reload()
layer.triggerRepaint()
이것은 나를 위해 일했지만 100 행의 데이터 만 가지고있었습니다. 더 큰 데이터 세트가있는 경우 캐싱없이 작업이 느려질 수 있습니다.