create_continents.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/usr/bin/env python3
  2. '''
  3. create ardupilot terrain database files as continents
  4. '''
  5. import os
  6. from MAVProxy.modules.mavproxy_map import srtm
  7. from argparse import ArgumentParser
  8. from app import compressFiles
  9. this_path = os.path.dirname(os.path.realpath(__file__))
  10. parser = ArgumentParser(description='terrain data continent creator')
  11. parser.add_argument("infolder", type=str, default="./files")
  12. parser.add_argument("outfolder", type=str, default="./continents")
  13. args = parser.parse_args()
  14. downloader = srtm.SRTMDownloader(debug=False)
  15. downloader.loadFileList()
  16. continents = {}
  17. # Create mappings of long/lat to continent
  18. for (lonlat, contfile) in downloader.filelist.items():
  19. continent = str(contfile[0][:-1])
  20. filename = os.path.join(this_path, args.infolder, str(contfile[1]).split(".")[0] + ".DAT.gz")
  21. print(continent + " in " + filename)
  22. # add to database
  23. if continent != '' and continent != 'USGS':
  24. if continent in continents:
  25. continents[continent].append(filename)
  26. else:
  27. continents[continent] = [filename]
  28. print("Continents are: " + str(continents.keys()))
  29. # Add the files
  30. for continent in continents:
  31. if os.path.exists(os.path.join(args.outfolder, continent + ".zip")):
  32. os.remove(os.path.join(args.outfolder, continent + ".zip"))
  33. print("Processing: " + continent)
  34. files = continents[continent]
  35. compressFiles(files, continent, args.outfolder)