This notebook gathers all the aois used in this repo and saves them as a geojson file.
To grab a single aoi geojson string to add to your notebook, just uncomment the line that prints the aoi. Be sure to add your notebook to the list of notebooks used by that aoi!
To specify a new aoi or grab an aoi and indicate indicate that the aoi is used by an additional notebook, jump to Specify AOIs.
NOTE: Be sure to run the entire notebook so the aois get printed to geojson at the end
In [1]:
import json
import geojson
from geojson import Polygon, Feature, FeatureCollection
In [2]:
# # Local code for compact printing of geojson
from utils import CompactFeature, CompactFeatureCollection
In [3]:
class Aoi(CompactFeature):
def __init__(self, name, used_by, coordinates, id=None):
pg = Polygon(coordinates)
prop = {'name': name, 'used by': used_by}
if id:
prop['id']: id
super(CompactFeature, self).__init__(geometry=pg, properties=prop)
self["type"] = 'Feature'
class Aois(CompactFeatureCollection):
def __init__(self, features=None, **extras):
if features is not None:
for f in features:
self._check_aoi(f)
else:
features = []
super(CompactFeatureCollection, self).__init__(features, **extras)
self.type = 'FeatureCollection'
@staticmethod
def _check_aoi(aoi):
if not isinstance(aoi, Aoi):
raise(Exception('expected instance of Aoi, got {}'.format(type(aoi).__name__)))
def append(self, aoi):
self._check_aoi(aoi)
self.features.append(aoi)
def write(self, filename):
with open(filename, 'w') as dest:
dest.write(self.__str__())
In [4]:
aoi_filename = 'aois.geojson'
In [5]:
aois = Aois()
Each AOI is specified by instantiating the Aoi
class with the aoi name, notebooks that use the aoi, and aoi geometry coordinates, in that order. Once an AOI is created, append it to the Aois
object. Be sure to run this through once to generate the geojson file at the end of the notebook.
NOTE: Be careful about appending an Aoi
to Aois
multiple times. This will result in repeat Features in the resulting geojson.
In [6]:
iowa_crops = Aoi(
'iowa_crops',
['crop_classification/classify_cart_l8_ps',
'coverage/calculate_coverage_wgs84'],
[[
[-93.2991294841129, 42.6995987669915],
[-93.2996742314127, 42.8127566482941],
[-93.2884356831875, 42.8619208871588],
[-93.2653319466575, 42.9248165306276],
[-92.9938730936993, 42.9251238519476],
[-92.9938880477425, 42.7736373428868],
[-92.9983961055212, 42.7545290276869],
[-93.0191535706845, 42.6999877495273],
[-93.2991294841129, 42.6995987669915]
]])
aois.append(iowa_crops)
# iowa_crops
In [7]:
sacramento_crops = Aoi('sacramento_crops',
['crop_classification/datasets_identify-1'],
[[
[-121.58460974693298, 38.29170496647727],
[-121.58460974693298, 38.32726528409606],
[-121.5248715877533, 38.32726528409606],
[-121.5248715877533, 38.29170496647727],
[-121.58460974693298, 38.29170496647727]
]])
aois.append(sacramento_crops)
# sacramento_crops
In [8]:
sacramento_crops_2 = Aoi(
'sacramento_crops_2',
['coverage/calculage_coverage_wgs84',
'crossovers/ps_l8_crossovers',
'landsat-ps-comparison/landsat-ps-comparison',
'crop_classification/datasets_identify-2'],
[[
[-121.3113248348236, 38.28911976564886],
[-121.3113248348236, 38.34622533958],
[-121.2344205379486, 38.34622533958],
[-121.2344205379486, 38.28911976564886],
[-121.3113248348236, 38.28911976564886]
]])
aois.append(sacramento_crops_2)
# sacramento_crops_2
In [9]:
golden_gate_park = Aoi('golden_gate_park',
['data-api-tutorials/clip_and_ship_introduction'],
[[
[-122.51103401184083, 37.771596736802074],
[-122.51060485839844, 37.763997637045456],
[-122.45902061462401, 37.76603318676243],
[-122.45773315429689, 37.7654903789825],
[-122.45275497436523, 37.76637243960179],
[-122.45455741882324, 37.775124624817906],
[-122.46597290039062, 37.7738356083287],
[-122.51103401184083, 37.771596736802074]
]])
aois.append(golden_gate_park)
# golden_gate_park
In [10]:
san_francisco_city = Aoi('san_francisco_city',
['data-api-tutorials/planet_cli_introduction'],
[[
[-122.47455596923828, 37.810326435534755],
[-122.49172210693358, 37.795406713958236],
[-122.52056121826172, 37.784282779035216],
[-122.51953124999999, 37.6971326434885],
[-122.38941192626953, 37.69441603823106],
[-122.38872528076173, 37.705010235842614],
[-122.36228942871092, 37.70935613533687],
[-122.34992980957031, 37.727280276860036],
[-122.37773895263672, 37.76230130281876],
[-122.38494873046875, 37.794592824285104],
[-122.40554809570311, 37.813310018173155],
[-122.46150970458983, 37.805715207044685],
[-122.47455596923828, 37.810326435534755]
]])
aois.append(san_francisco_city)
# san_francisco_city
In [11]:
vancouver_island_s = Aoi(
'Vancouver Island South',
['data-api-tutorials/planet_data_api_introduction'],
[[
[-125.29632568359376, 48.37084770238366],
[-125.29632568359376, 49.335861591104106],
[-123.2391357421875, 49.335861591104106],
[-123.2391357421875, 48.37084770238366],
[-125.29632568359376, 48.37084770238366]
]])
aois.append(vancouver_island_s)
# vancouver_island_s
In [12]:
# also ndvi-from-sr/ndvi_planetscope_sr and ndvi/ndvi_planetscope
west_stockton = Aoi('West of Stockton',
['data-api-tutorials/search_and_download_quickstart',
'ndvi-from-sr/ndvi_planetscope_sr',
'ndvi/ndvi_planetscope'
],
[[
[-121.59290313720705, 37.93444993515032],
[-121.27017974853516, 37.93444993515032],
[-121.27017974853516, 38.065932950547484],
[-121.59290313720705, 38.065932950547484],
[-121.59290313720705, 37.93444993515032]
]])
aois.append(west_stockton)
# west_stockton
In [13]:
congo_forest = Aoi('congo_forest',
['forest-monitoring/drc_roads_download'],
[[
[25.42429478260258,1.0255377823058893],
[25.592960813580472,1.0255377823058893],
[25.592960813580472,1.1196578801254304],
[25.42429478260258,1.1196578801254304],
[25.42429478260258,1.0255377823058893]
]])
aois.append(congo_forest)
# congo_forest
In [14]:
# also used in mosaicing/basic_compositing_demo
mt_dana = Aoi('Mt Dana',
['in-class-exercises/mosaicing-and-masking/mosaicing-and-masking-key',
'mosaicing/basic_compositing_demo'
],
[[
[-119.16183471679688,37.82903964181452],
[-119.14947509765626,37.83663205340172],
[-119.13745880126953,37.846392577323286],
[-119.13574218750001,37.856422880849514],
[-119.13883209228514,37.86645181975611],
[-119.12406921386719,37.86916210952103],
[-119.12200927734376,37.875937397778614],
[-119.1212688230194,37.90572368618133],
[-119.13740499245301,37.930641295117404],
[-119.16595458984376,37.92659678938742],
[-119.18243408203126,37.9447389942697],
[-119.2088161252655,37.95257263611974],
[-119.25516469704283,37.92522514171301],
[-119.2630611203827,37.88215253011582],
[-119.25104482399598,37.84474832157969],
[-119.18203695046083,37.82576791597315],
[-119.16183471679688,37.82903964181452]
]])
aois.append(mt_dana)
# mt_dana
In [15]:
hanoi_s = Aoi('S Hanoi',
['label-data/label_maker_pl_geotiff'],
[[
[105.81775409169494, 20.84015810005586],
[105.9111433289945, 20.84015810005586],
[105.9111433289945, 20.925748489914824],
[105.81775409169494, 20.925748489914824],
[105.81775409169494, 20.84015810005586]
]])
aois.append(hanoi_s)
# hanoi_s
In [16]:
myanmar_s = Aoi('S Myanmar',
['orders/ordering_and_delivery',
'orders/tools_and_toolchains'
],
[[
[94.25142652167966,16.942922591218252],
[95.95431374929511,16.587048751480086],
[95.55802198999191,14.851751617790999],
[93.87002080638986,15.209870864141054],
[94.25142652167966,16.942922591218252]
]])
aois.append(myanmar_s)
# myanmar_s
In [17]:
merced_n = Aoi('North of Merced',
['toar/toar_planetscope'],
[[
[-120.53282682046516,37.387200839539496],
[-120.52354973008043,37.420706184624756],
[-120.23858050023456,37.37089230084231],
[-120.24140251133315,37.36077146074112],
[-120.240470649891,37.36060856263429],
[-120.253098881104,37.31418359933723],
[-120.25781268370172,37.29734056539194],
[-120.54356183694901,37.347297317827675],
[-120.53282682046516,37.387200839539496]
]])
aois.append(merced_n)
# merced_n
In [18]:
iowa_crops_2 = Aoi('iowa_crops_2',
['udm/udm', 'udm/udm2'],
[[
[-93.29905768168668,42.69958733505418],
[-93.29965849650593,42.81289914666694],
[-93.28841467631707,42.862022561801815],
[-93.2653691364643,42.924746756580326],
[-92.99388666885065,42.92512385194759],
[-92.99388666885065,42.77359750030287],
[-92.99839277999504,42.75450452618375],
[-93.01916380660347,42.699965805770056],
[-93.29905768168668,42.69958733505418]
]])
aois.append(iowa_crops_2)
# iowa_crops_2
In [19]:
aois.write(aoi_filename)