Rozwijam się w Pythonie i używam GDAL z OSGEO do manipulacji i interakcji z rastrami i plikami kształtów.
Chcę wziąć plik kształtu, który ma cechy punktowe i interpolować go do rastra powierzchniowego. Obecnie używam metody „RasterizeLayer”, która wypala wartość z funkcji punktowej do rastra (która jest ustawiona dla wszystkich wartości nodata), ale pozostawia wszystkie nietknięte piksele jako wartość „nodata”. Pozostaje mi więc raster typu szachownica.
Co mam po użyciu RasterizeLayer:
Co chcę dla produktu końcowego:
Uważam, że funkcja, której szukam, jest znana jako „Spline_sa ()” z importu arcgisscripting.
Czy GDAL ma podobną funkcję, czy może istnieje inna metoda uzyskania pożądanego wyniku?
źródło
Zobacz interfejs API gridowania GDAL . Nie wiem, czy jest to ujawnione w powiązaniach Pythona, ale jeśli nie, wywołujesz narzędzie gdal_grid za pośrednictwem modułu podprocesu .
Interfejs API siatki GDAL używa tylko odwrotnego ważenia odległości, średniej ruchomej i najbliższego sąsiada, nie implementuje splajnów. Inną opcją jest użycie Scipy .
źródło
Trochę stary w tym wątku, ale napisałem prosty moduł, który wykorzystuje algorytm KNN ze sklearn o nazwie skspatial.
https://github.com/rosskush/skspatial
Możesz zaimportować plik kształtu za pomocą geopand i wybrać kolumnę, która interpoluje powierzchnię, którą można wyeksportować do rastra. Jest to bardzo prosty i prawdopodobnie nie najlepszy sposób, aby to zrobić, ale utrzymuje wszystko w czystości co najmniej python.
źródło