Small improvements in wrvalidators.py.
[philipp/winterrodeln/wrpylib.git] / scripts / get_elevation.py
1 import argparse
2
3 from wrpylib.wrdem import DemBasemap
4 from wrpylib.wrvalidators import lonlat_from_str, LonLat, lonlat_to_str
5
6
7 def main(lonlat: LonLat):
8     """Coordinate like "47.275712 N 11.3456496 E"."""
9     dems = [DemBasemap()]
10     for dem in dems:
11         ele = dem.get_ele(lonlat)
12         if ele is not None:
13             print(f'Elevation for {lonlat_to_str(lonlat)}: {ele:.0f} m (source: {dem.get_name()})')
14             return
15     print(f'No elevation data available for {lonlat_to_str(lonlat)}')
16
17
18 if __name__ == '__main__':
19     parser = argparse.ArgumentParser('Get most accurate elevation for a given point')
20     parser.add_argument('coordinate', type=lonlat_from_str, help='coordinate like "47.275712 N 11.3456496 E"')
21     args = parser.parse_args()
22     main(args.coordinate)