test.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import sys
  2. import json
  3. import time
  4. import argparse
  5. import requests
  6. if __name__ == '__main__':
  7. parser = argparse.ArgumentParser()
  8. parser.add_argument('--server', type=str, default='http://localhost:5000')
  9. parser.add_argument('--origin', type=float, nargs='+', default=[0.0, 0.0, 0.0])
  10. parser.add_argument('--dimensions', type=float, nargs='+', default=[1.0, 1.0])
  11. parser.add_argument('--subset', type=int, default=0)
  12. parser.add_argument('--size', type=int, default=256)
  13. parser.add_argument('--token', type=str, required=True)
  14. parser.add_argument('--dataset', type=str, required=True)
  15. args = parser.parse_args()
  16. if len(args.origin) != 3:
  17. sys.exit("Error: `origin' must be a list with three elements.")
  18. if len(args.dimensions) != 2:
  19. sys.exit("Error: `dimensions' must be a list with two elements.")
  20. # POST request
  21. data = dict(token=args.token, dataset=args.dataset, origin=args.origin,
  22. dimensions=args.dimensions, size=args.size, subset=args.subset)
  23. r = requests.post('{}/maps'.format(args.server), json=data)
  24. r.raise_for_status()
  25. url = r.headers['Location']
  26. # Check process queue
  27. while True:
  28. r = requests.get(url)
  29. r.raise_for_status()
  30. if r.json()['status'] == 'done':
  31. # Download image
  32. url = r.headers['Location']
  33. r = requests.get(url, stream=True)
  34. r.raise_for_status()
  35. with open('output.jpg', 'wb') as f:
  36. for chunk in r:
  37. f.write(chunk)
  38. break
  39. time.sleep(1.0)