import json import sys import subprocess config = json.load(open(sys.argv[1])) results = [] for item in config["items"]: lon0 = item["lon0"] lat0 = item["lat0"] lon1 = item["lon1"] lat1 = item["lat1"] center_lat = (lat0 + lat1) / 2 center_lon = (lon0 + lon1) / 2 path = "../../" + config["directory"] + "/" + item["name"] + ".svg" CMD = """\ mapshaper -i {7} \ -rectangle bbox={0},{1},{2},{3} name=rect \ -clip rect target=ne_10m_land \ -proj crs="+proj=nsper +h=10000000 +lon_0={4} +lat_0={5}" target=ne_10m_land,rect \ -each 'console.log(this.bounds.concat([this.area]))' target=rect \ -o "{6}" target=ne_10m_land """ prepared = CMD.format(lon0, lat0, lon1, lat1, center_lon, center_lat, path, config["shapefile"]) print(prepared) result = subprocess.check_output( prepared, shell=True ) data = json.loads(result.decode("utf-8")) height = data[3] - data[1] area = data[4] results.append([item["name"], area, height]) print(json.dumps(results))