Mam problem z przetwarzaniem i mam nadzieję, że uda mi się tutaj rozwiązać.
Pracuję z teledetekcją stosowaną w leśnictwie, szczególnie z danymi LiDAR. Pomysł polega na użyciu obrazu Scikit do wykrywania wierzchołków drzew. Ponieważ jestem nowy w Pythonie, uznałem wielki osobisty triumf, aby wykonać następujące czynności:
- Zaimportuj CHM (z matplotlib);
- Uruchom filtr gaussowski (z pakietem scikit-image);
- Uruchom filtr maksima (z pakietem scikit-image);
- Uruchom peak_local_max (z pakietem scikit-image);
- Pokaż CHM z lokalnymi maksimami (z matplotlib);
Teraz mój problem. Podczas importowania za pomocą programu matplot obraz traci współrzędne geograficzne. Współrzędne, które mam, są tylko podstawowymi współrzędnymi obrazu (tj. 250 312). Potrzebuję uzyskać wartość piksela poniżej lokalnych maksymalnych punktów na obrazie (czerwone kropki na obrazie). Tutaj na forum widziałem jednego faceta pytającego o to samo (uzyskanie wartości piksela rastra GDAL pod punktem OGR bez NumPy? ), Ale on już miał te punkty w pliku kształtu. W moim przypadku punkty zostały obliczone za pomocą scikit-image (jest to tablica ze współrzędnymi każdego wierzchołka drzewa). Więc nie mam pliku kształtu.
Podsumowując, na końcu chcę to plik txt ze współrzędnymi każdej lokalnej maksima we współrzędnych geograficznych, na przykład:
525412 62980123 1150 ...
źródło
Z szybkiego spojrzenia na matplotlib powiedziałbym, że po imporcie musisz zmienić skale osi .
źródło
Spróbuj użyć następującego fragmentu kodu. Można to wykorzystać do odczytu danych obrazu z rastra i zapisu przetworzonych danych do rastra (plik .geotiff).
źródło