파이썬에서 Polygonize 함수를 사용하는 데 문제가 있습니다. 이에 대한 요리 책 예제는 여기 에서 찾을 수 있습니다 .
내 코드의 관련 부분은 다음과 같습니다
sourceRaster = gdal.Open('myraster.tif')
band = sourceRaster.GetRasterBand(1)
bandArray = band.ReadAsArray()
outShapefile = "polygonized"
driver = ogr.GetDriverByName("ESRI Shapefile")
if os.path.exists(outShapefile+".shp"):
driver.DeleteDataSource(outShapefile+".shp")
outDatasource = driver.CreateDataSource(outShapefile+ ".shp")
outLayer = outDatasource.CreateLayer("polygonized", srs=None)
gdal.Polygonize( band, None, outLayer, -1, [], callback=None )
outDatasource.Destroy()
sourceRaster = None
밴드에 관련 정보가 있음을 알고 있습니다 bandArray
.
array([[ 4., 4., 3., 3., 3., 2., 2., 2., 2., 3., 3., 3., 3.,
3., 3., 3., 3., 4., 4., 4., 4., 4., 4., 4., 4., 4.,
4., 4., 4., 4.],
QGIS에서 속성 테이블을 열면 비어 있습니다.
편집하다:
래스터-> 변환-> 다각형 도구를 사용하여 QGIS에서 변환이 제대로 작동합니다.
다각형 화 될 래스터의 스크린 샷 :
그리고 QGIS 도구의 결과 변환 스크린 샷 :
Windows 7에서 Enthought 배포판을 사용하고 있습니다. GDAL 버전 1.10.0-3
문제는 GDAL과 요리 책 예제를 사용하여 파이썬에서 래스터를 다각형 화 할 수 없다는 것입니다 .QGIS GUI에서 동일한 래스터를 문제없이 다각형 화 할 수 있습니다
래스터는 어떻게 생겼습니까? 실제로 다각형이 포함되어 있습니까? gdal_polygonize.py를 대신 사용하면 작동합니까?
—
BradHards
QGIS에서 작업 프로세스의 스크린 샷을 추가하도록 편집
—
camdenl
실제 문제는 무엇입니까?
—
Fezter
추가 된 특정 문제
—
camdenl
비슷한 문제 (빈 shapefile 생성 중)가 있었고 필드를 만드는 것이 도움이되지 않았습니다. 내가 잘못하고있는 것은 다각형 화를 호출하기 전에 코드에서 shapefile을 닫지 않았다는 것입니다. 당신은 당신의 예에서 그것을 닫습니다, 나는 다른 사람들의 참조를 위해 이것을 게시하고 있습니다.
—
스테파니