| @@ -91,6 +91,8 @@ | |||||
| <a href='https://ko-fi.com/P5P5ACDA' target='_blank'><img style='border:0px;height:36px;transform: translateZ(0);' src='https://cdn.ko-fi.com/cdn/kofi5.png?v=2' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a> | <a href='https://ko-fi.com/P5P5ACDA' target='_blank'><img style='border:0px;height:36px;transform: translateZ(0);' src='https://cdn.ko-fi.com/cdn/kofi5.png?v=2' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a> | ||||
| <a target="_blank" href="https://docs.google.com/forms/d/e/1FAIpQLSdCiZ2_GVVdXV0bqty4rymbCCwaFq-PLdwmK1vUIakPjv7f2g/viewform" | <a target="_blank" href="https://docs.google.com/forms/d/e/1FAIpQLSdCiZ2_GVVdXV0bqty4rymbCCwaFq-PLdwmK1vUIakPjv7f2g/viewform" | ||||
| class="options-banner-button">Character Submissions</a> | class="options-banner-button">Character Submissions</a> | ||||
| <a target="_blank" href="https://docs.google.com/forms/d/e/1FAIpQLScQxwfKGoedYIT8VLYvJIrFrEEXqcxe7RiMJIwhU6PfVRFXSg/viewform" | |||||
| class="options-banner-button">Feedback</a> | |||||
| </div> | </div> | ||||
| <h3 class="options-header">World Info</h3> | <h3 class="options-header">World Info</h3> | ||||
| <div id="options-world"> | <div id="options-world"> | ||||
| @@ -0,0 +1,79 @@ | |||||
| { | |||||
| "name": "Islands", | |||||
| "directory": "/media/naturals/islands/", | |||||
| "shapefile": "D:/GSHHS_shp/h/GSHHS_h_L1.shp", | |||||
| "mode": "bounding-boxes", | |||||
| "layer": "GSHHS_h_L1", | |||||
| "items": [ | |||||
| { | |||||
| "name": "Long Island", | |||||
| "corner0": [-74.255,41.358], | |||||
| "corner1": [-71.347,40.307] | |||||
| }, | |||||
| { | |||||
| "name": "Bermuda", | |||||
| "corner0": [-64.9198,32.4254], | |||||
| "corner1": [-64.6175,32.2227] | |||||
| }, | |||||
| { | |||||
| "name": "Sicily", | |||||
| "corner0": [12.222,38.306], | |||||
| "corner1": [15.607,36.527] | |||||
| }, | |||||
| { | |||||
| "name": "Tasmania", | |||||
| "corner0": [143.519,-39.435], | |||||
| "corner1": [148.903,-44.009] | |||||
| }, | |||||
| { | |||||
| "name": "Elba", | |||||
| "corner0": [10.0588,42.9178], | |||||
| "corner1": [10.4917,42.6677] | |||||
| }, | |||||
| { | |||||
| "name": "Saint Helena", | |||||
| "corner0": [-5.8390,-15.8896], | |||||
| "corner1": [-5.5959,-16.0670] | |||||
| }, | |||||
| { | |||||
| "name": "Galveston", | |||||
| "corner0": [-95.1322,29.3641], | |||||
| "corner1": [-94.6995,29.0599] | |||||
| }, | |||||
| { | |||||
| "name": "Falkland Islands", | |||||
| "corner0": [-61.648,-50.847], | |||||
| "corner1": [-57.521,-52.676] | |||||
| }, | |||||
| { | |||||
| "name": "Corsica", | |||||
| "corner0": [8.384,43.115], | |||||
| "corner1": [9.5991,41.3197] | |||||
| }, | |||||
| { | |||||
| "name": "Sardinia", | |||||
| "corner0": [8.0122,41.3190], | |||||
| "corner1": [9.936,38.723] | |||||
| }, | |||||
| { | |||||
| "name": "Vancouver Island", | |||||
| "corner0": [-129.269,51.141], | |||||
| "corner1": [-121.930,47.770] | |||||
| }, | |||||
| { | |||||
| "name": "Sakhalin", | |||||
| "corner0": [141.580,54.634], | |||||
| "corner1": [145.121,45.600] | |||||
| }, | |||||
| { | |||||
| "name": "Hainan Island", | |||||
| "corner0": [108.346,20.183], | |||||
| "corner1": [111.342,17.866] | |||||
| }, | |||||
| { | |||||
| "name": "Sokotra", | |||||
| "corner0": [53.267,12.821], | |||||
| "corner1": [54.655,12.225] | |||||
| } | |||||
| ] | |||||
| } | |||||
| @@ -8,10 +8,10 @@ if config["mode"] == "bounding-boxes": | |||||
| results = [] | results = [] | ||||
| for item in config["items"]: | for item in config["items"]: | ||||
| lon0 = item["lon0"] | |||||
| lat0 = item["lat0"] | |||||
| lon1 = item["lon1"] | |||||
| lat1 = item["lat1"] | |||||
| lon0 = item["corner0"][0] | |||||
| lat0 = item["corner0"][1] | |||||
| lon1 = item["corner1"][0] | |||||
| lat1 = item["corner1"][1] | |||||
| center_lat = (lat0 + lat1) / 2 | center_lat = (lat0 + lat1) / 2 | ||||
| center_lon = (lon0 + lon1) / 2 | center_lon = (lon0 + lon1) / 2 | ||||
| @@ -22,8 +22,8 @@ if config["mode"] == "bounding-boxes": | |||||
| mapshaper -i {7} \ | mapshaper -i {7} \ | ||||
| -rectangle bbox={0},{1},{2},{3} name=rect \ | -rectangle bbox={0},{1},{2},{3} name=rect \ | ||||
| -clip rect target={8} \ | -clip rect target={8} \ | ||||
| -proj crs="+proj=nsper +h=10000000 +lon_0={4} +lat_0={5}" target={8},rect \ | |||||
| -each 'console.log(this.bounds.concat([this.area]))' target=rect \ | |||||
| -proj crs="+proj=ortho +lon_0={4} +lat_0={5}" target={8},rect \ | |||||
| -info target={8} \ | |||||
| -o "{6}" target={8} | -o "{6}" target={8} | ||||
| """ | """ | ||||
| @@ -31,16 +31,19 @@ if config["mode"] == "bounding-boxes": | |||||
| prepared = CMD.format(lon0, lat0, lon1, lat1, center_lon, center_lat, path, config["shapefile"], config["layer"]) | prepared = CMD.format(lon0, lat0, lon1, lat1, center_lon, center_lat, path, config["shapefile"], config["layer"]) | ||||
| result = subprocess.check_output( | result = subprocess.check_output( | ||||
| prepared, | prepared, | ||||
| shell=True | |||||
| shell=True, | |||||
| stderr=subprocess.STDOUT | |||||
| ) | ) | ||||
| data = json.loads(result.decode("utf-8")) | |||||
| for line in result.decode("utf-8").split("\n"): | |||||
| if "Bounds:" in line: | |||||
| data = [float(x) for x in line[8:].strip().split(",")] | |||||
| height = data[3] - data[1] | height = data[3] - data[1] | ||||
| area = data[4] | |||||
| results.append([item["name"], area, height]) | |||||
| except: | |||||
| results.append([item["name"], height]) | |||||
| except Exception as e: | |||||
| print(e) | |||||
| print(result.decode("utf-8")) | print(result.decode("utf-8")) | ||||
| print(json.dumps(results)) | print(json.dumps(results)) | ||||