Mam kilka odcinków strumienia o długości 1000 km. Muszę znaleźć różnicę wysokości między dwoma kolejnymi punktami odległości 1 km, zaczynając od góry do dołu. Jak mogę uzyskać różnicę wysokości z DEM? Mam segmenty strumienia w formacie rastrowym, a także w formacie wektorowym. Byłoby lepiej, gdybym miał jakiś pomysł na temat skryptu Python.
10
Odpowiedzi:
Jako geolog często używam tej techniki do geologicznego przekroju w czystym Pythonie. W Pythonie przedstawiłem kompletne rozwiązanie : wykorzystanie warstw wektorowych i rastrowych w perspektywie geologicznej bez oprogramowania GIS (po francusku)
Przedstawiam tutaj streszczenie w języku angielskim:
Jeśli otworzysz DEM za pomocą modułu Python GDAL / OGR:
W rezultacie masz liczbę pasm i parametry geotransformacji. Jeśli chcesz wyodrębnić wartość rastra poniżej punktu xy:
Ponieważ jest to DEM, otrzymujesz wartość wysokości poniżej punktu. Przy 3 pasmach rastrowych o tym samym punkcie xy otrzymujesz 3 wartości (R, G, B). Więc możesz stworzyć funkcję, która pozwala uzyskać wartości wielu rastrów poniżej punktu xy:
podanie
Następnie przetwarzasz profil linii (który może mieć segmenty):
Aby wygenerować równo odległe punkty na linii, możesz użyć modułu Shapely z interpolacją (łatwiej niż ogr)
oraz wyniki (wraz z wartościami RGB mapy geologicznej) z wartościami x, y, z, odległościami list w 3D z matplotlib i Visvis (wartości x, y, z)
Przekroje (x, wysokość od odległości prądu (lista dyst. )) Za pomocą matplotlib :![wprowadź opis zdjęcia tutaj](https://i.stack.imgur.com/Bu6SE.jpg)
źródło