less copy protection, more size visualization
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 

42 lines
1.0 KiB

  1. import json
  2. import sys
  3. import subprocess
  4. config = json.load(open(sys.argv[1]))
  5. results = []
  6. for item in config["items"]:
  7. lon0 = item["lon0"]
  8. lat0 = item["lat0"]
  9. lon1 = item["lon1"]
  10. lat1 = item["lat1"]
  11. center_lat = (lat0 + lat1) / 2
  12. center_lon = (lon0 + lon1) / 2
  13. path = "../../" + config["directory"] + "/" + item["name"] + ".svg"
  14. CMD = """\
  15. mapshaper -i {7} \
  16. -rectangle bbox={0},{1},{2},{3} name=rect \
  17. -clip rect target=ne_10m_land \
  18. -proj crs="+proj=nsper +h=10000000 +lon_0={4} +lat_0={5}" target=ne_10m_land,rect \
  19. -each 'console.log(this.bounds.concat([this.area]))' target=rect \
  20. -o "{6}" target=ne_10m_land
  21. """
  22. prepared = CMD.format(lon0, lat0, lon1, lat1, center_lon, center_lat, path, config["shapefile"])
  23. print(prepared)
  24. result = subprocess.check_output(
  25. prepared,
  26. shell=True
  27. )
  28. data = json.loads(result.decode("utf-8"))
  29. height = data[3] - data[1]
  30. area = data[4]
  31. results.append([item["name"], area, height])
  32. print(json.dumps(results))