diff --git a/macrovision.html b/macrovision.html index 278f4b43..6a77beee 100644 --- a/macrovision.html +++ b/macrovision.html @@ -91,6 +91,8 @@ Buy Me a Coffee at ko-fi.com Character Submissions + Feedback

World Info

diff --git a/scripts/mapshaper/islands.json b/scripts/mapshaper/islands.json new file mode 100644 index 00000000..a453edde --- /dev/null +++ b/scripts/mapshaper/islands.json @@ -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] + } + ] +} \ No newline at end of file diff --git a/scripts/mapshaper/map-coords.py b/scripts/mapshaper/map-coords.py index 9494a4b8..f5659995 100644 --- a/scripts/mapshaper/map-coords.py +++ b/scripts/mapshaper/map-coords.py @@ -8,10 +8,10 @@ if config["mode"] == "bounding-boxes": results = [] 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_lon = (lon0 + lon1) / 2 @@ -22,8 +22,8 @@ if config["mode"] == "bounding-boxes": mapshaper -i {7} \ -rectangle bbox={0},{1},{2},{3} name=rect \ -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} """ @@ -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"]) result = subprocess.check_output( 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] - 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(json.dumps(results))