Jak wygenerować miniatury obrazów z wielu plików kształtów?

9

Niedawno wydałem wspólnie z kolegą projekt Open Source o nazwie Mapoteca, który jest zestawem skryptów Python, który integruje się z instalacją GDAL / FWTools, umożliwiając pełny przegląd katalogów szukających danych przestrzennych i wydobywania zasięgu, geometrii, liczby elementów, projekcji i użytkownik zapisujący go do pliku csv. Pracujemy nad częścią, która opisuje powiązane pliki DBF i chcieliśmy wygenerować obraz miniatury każdego pliku kształtu, czy znasz sposób generowania tych miniatur w formacie JPEG lub PNG za pomocą Pythona?

jdeltoro1973
źródło

Odpowiedzi:

3

Zadałem pytanie dotyczące tworzenia obrazów z danych wektorowych , które mogą okazać się przydatne. Przyjęta odpowiedź, połączenie shapely, ogr, matplotlib i numpy, wygląda na to, że zadziałałoby dla ciebie.

użytkownik890
źródło
2

Najprostszym sposobem byłoby wywołanie gdal_rasterize za pomocą subprocess.call (), ale podejrzewam, że nie wykonuje żadnej interpolacji, więc byłby alias do punktu nieczytelności, gdyby wygenerować obraz miniatury bezpośrednio z danych. Powinieneś więc wygenerować tymczasowy obraz „rozsądnej wielkości” * i użyć biblioteki obrazów Python, aby skalować go do pożądanego rozmiaru.

Ale spodziewam się, że największym problemem będzie to, na jakich atrybutach oprzesz stylizację? Pliki kształtów nie mają nieodłącznych informacji o wyświetlaniu, ponieważ jestem pewien, że wiesz, więc musisz znaleźć sposób, aby zdecydować, które kolory użyć. gdal_rasterize daje taką możliwość, ale zwykle wybór jest oparty na wiedzy specyficznej dla domeny. Aby mieć ogólne narzędzie, musisz mieć ogólny schemat stylizacji.

* To też jest coś, co może wymagać kilku sztywnych zasad. Być może zacznij od idealnego rozmiaru piksela (powiedzmy 10 m na piksel) i zwiększ go, jeśli wynikowy obraz jest zbyt duży, aby był praktyczny.

MerseyViking
źródło
1

Tylko ze względu na kompletność - mapserver może również renderować dobrze wyglądające mapy z zakresu podstawowych danych, w wierszu poleceń za pomocą narzędzia shp2img . Ponownie musisz wybrać bardzo ogólny, bardzo prosty styl, który pasuje do twoich celów.

relet
źródło