Zeel commited on
Commit
f3f89d3
1 Parent(s): fb9b1eb

first commit

Browse files
Bhankhara Df 11 he 5 2020-21.kml ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
3
+ <Document>
4
+ <name>Bhankhara Df 11 he 5 2020-21</name>
5
+ <gx:CascadingStyle kml:id="__managed_style_2ECD90080C332BDE40E2">
6
+ <Style>
7
+ <IconStyle>
8
+ <scale>1.2</scale>
9
+ <Icon>
10
+ <href>https://earth.google.com/earth/rpc/cc/icon?color=1976d2&amp;id=2000&amp;scale=4</href>
11
+ </Icon>
12
+ <hotSpot x="64" y="128" xunits="pixels" yunits="insetPixels"/>
13
+ </IconStyle>
14
+ <LabelStyle>
15
+ </LabelStyle>
16
+ <LineStyle>
17
+ <color>ff2dc0fb</color>
18
+ <width>2.4389</width>
19
+ </LineStyle>
20
+ <PolyStyle>
21
+ <color>00ffffff</color>
22
+ </PolyStyle>
23
+ <BalloonStyle>
24
+ <displayMode>hide</displayMode>
25
+ </BalloonStyle>
26
+ </Style>
27
+ </gx:CascadingStyle>
28
+ <gx:CascadingStyle kml:id="__managed_style_175A38A9FB332BDE40E2">
29
+ <Style>
30
+ <IconStyle>
31
+ <Icon>
32
+ <href>https://earth.google.com/earth/rpc/cc/icon?color=1976d2&amp;id=2000&amp;scale=4</href>
33
+ </Icon>
34
+ <hotSpot x="64" y="128" xunits="pixels" yunits="insetPixels"/>
35
+ </IconStyle>
36
+ <LabelStyle>
37
+ </LabelStyle>
38
+ <LineStyle>
39
+ <color>ff2dc0fb</color>
40
+ <width>1.62594</width>
41
+ </LineStyle>
42
+ <PolyStyle>
43
+ <color>00ffffff</color>
44
+ </PolyStyle>
45
+ <BalloonStyle>
46
+ <displayMode>hide</displayMode>
47
+ </BalloonStyle>
48
+ </Style>
49
+ </gx:CascadingStyle>
50
+ <StyleMap id="__managed_style_02B2DF3F10332BDE40E2">
51
+ <Pair>
52
+ <key>normal</key>
53
+ <styleUrl>#__managed_style_175A38A9FB332BDE40E2</styleUrl>
54
+ </Pair>
55
+ <Pair>
56
+ <key>highlight</key>
57
+ <styleUrl>#__managed_style_2ECD90080C332BDE40E2</styleUrl>
58
+ </Pair>
59
+ </StyleMap>
60
+ <Placemark id="0CB71842DC32C34FCCDC">
61
+ <name>bhankhara Df </name>
62
+ <LookAt>
63
+ <longitude>73.23288329025303</longitude>
64
+ <latitude>23.92934021215672</latitude>
65
+ <altitude>351.5436929053654</altitude>
66
+ <heading>22.18919554855782</heading>
67
+ <tilt>0</tilt>
68
+ <gx:fovy>30.00004101</gx:fovy>
69
+ <range>1627.012775921321</range>
70
+ <altitudeMode>absolute</altitudeMode>
71
+ </LookAt>
72
+ <styleUrl>#__managed_style_02B2DF3F10332BDE40E2</styleUrl>
73
+ <Polygon>
74
+ <outerBoundaryIs>
75
+ <LinearRing>
76
+ <coordinates>
77
+ 73.23288020595453,23.92934920152165,0 73.2320424558106,23.9295414782706,0 73.23177030588151,23.9290796121952,0 73.23049283479376,23.92975711242018,0 73.2296710069635,23.93046123326063,0 73.2287325848189,23.92942606846368,0 73.23001098215263,23.92845402165482,0 73.23132082595696,23.92741616938989,0 73.23174863262777,23.92774125965506,0 73.23240516734252,23.92789815610602,0 73.23288020595453,23.92934920152165,0
78
+ </coordinates>
79
+ </LinearRing>
80
+ </outerBoundaryIs>
81
+ </Polygon>
82
+ </Placemark>
83
+ </Document>
84
+ </kml>
Bhankhara_Df_11_he_5_2020-21.geojson ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "type": "FeatureCollection",
3
+ "name": "Bhankhara Df 11 he 5 2020-21",
4
+ "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
5
+ "features": [
6
+ { "type": "Feature", "properties": { "Name": "bhankhara Df " }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 73.232880205954501, 23.9293492015216 ], [ 73.2320424558106, 23.9295414782706 ], [ 73.231770305881497, 23.929079612195199 ], [ 73.230492834793793, 23.929757112420202 ], [ 73.2296710069635, 23.930461233260601 ], [ 73.2287325848189, 23.929426068463702 ], [ 73.230010982152606, 23.928454021654801 ], [ 73.231320825956999, 23.9274161693899 ], [ 73.231748632627799, 23.9277412596551 ], [ 73.232405167342506, 23.927898156106 ], [ 73.232880205954501, 23.9293492015216 ] ] ] } }
7
+ ]
8
+ }
Modhari_he_10_2024-25_1.geojson ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "type": "FeatureCollection",
3
+ "name": "Modhari he 10 2024-25",
4
+ "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
5
+ "features": [
6
+ { "type": "Feature", "properties": { "Name": "modhari he 10" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 73.250265303276194, 23.966359326208998 ], [ 73.250855032573199, 23.968707782595999 ], [ 73.247453331972395, 23.969165838990801 ], [ 73.247435107606506, 23.968375467193201 ], [ 73.247220557780807, 23.966814738438298 ], [ 73.246392375394095, 23.9666180097215 ], [ 73.246547470533201, 23.965548877276401 ], [ 73.247483724157505, 23.965794485630301 ], [ 73.248410656612407, 23.965902014876299 ], [ 73.249480011641097, 23.965260579178999 ], [ 73.250265303276194, 23.966359326208998 ] ] ] } }
7
+ ]
8
+ }
README.md CHANGED
@@ -1,13 +1,13 @@
1
  ---
2
- title: Mean NDVI V2
3
- emoji: 🔥
4
- colorFrom: pink
5
- colorTo: yellow
6
  sdk: streamlit
7
  sdk_version: 1.39.0
8
  app_file: app.py
9
  pinned: false
10
- license: cc-by-4.0
11
  ---
12
 
13
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: Mean NDVI
3
+ emoji: 📊
4
+ colorFrom: gray
5
+ colorTo: blue
6
  sdk: streamlit
7
  sdk_version: 1.39.0
8
  app_file: app.py
9
  pinned: false
10
+ license: cc-by-nc-4.0
11
  ---
12
 
13
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
app.py ADDED
@@ -0,0 +1,259 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import ee
3
+ import json
4
+ import geemap
5
+ import geemap.foliumap as gee_folium
6
+ import leafmap.foliumap as leaf_folium
7
+ import streamlit as st
8
+ from pandas import to_datetime, read_csv, merge, date_range, DateOffset
9
+ from geopandas import read_file
10
+ from shapely.ops import transform
11
+ from functools import reduce
12
+ import plotly.express as px
13
+
14
+ st.set_page_config(layout="wide")
15
+
16
+ ############################################
17
+ # One time setup
18
+ ############################################
19
+
20
+
21
+ def initialize_ee():
22
+ credentials_path = os.path.expanduser("~/.config/earthengine/credentials")
23
+ if os.path.exists(credentials_path):
24
+ pass # Earth Engine credentials already exist
25
+ elif "EE" in os.environ: # write the credentials to the file
26
+ ee_credentials = os.environ.get("EE")
27
+ os.makedirs(os.path.dirname(credentials_path), exist_ok=True)
28
+ with open(credentials_path, "w") as f:
29
+ f.write(ee_credentials)
30
+ else:
31
+ raise ValueError(
32
+ f"Earth Engine credentials not found at {credentials_path} or in the environment variable 'EE'"
33
+ )
34
+
35
+ ee.Initialize()
36
+
37
+
38
+ if "ee_initialized" not in st.session_state:
39
+ initialize_ee()
40
+ st.session_state.ee_initialized = True
41
+
42
+ if "wayback_mapping" not in st.session_state:
43
+ with open("wayback_imagery.json") as f:
44
+ st.session_state.wayback_mapping = json.load(f)
45
+
46
+
47
+ ############################################
48
+ # Functions
49
+ ############################################
50
+ def shape_3d_to_2d(shape):
51
+ if shape.has_z:
52
+ return transform(lambda x, y, z: (x, y), shape)
53
+ else:
54
+ return shape
55
+
56
+
57
+ def preprocess_gdf(gdf):
58
+ gdf = gdf.to_crs(epsg=4326)
59
+ gdf = gdf[['Name', 'geometry']]
60
+ gdf["geometry"] = gdf["geometry"].apply(shape_3d_to_2d)
61
+ return gdf
62
+
63
+
64
+ def calculate_ndvi(image, nir_band, red_band):
65
+ nir = image.select(nir_band)
66
+ red = image.select(red_band)
67
+ ndvi = nir.subtract(red).divide(nir.add(red)).rename("NDVI")
68
+ return image.addBands(ndvi)
69
+
70
+
71
+ def postprocess_df(df, name):
72
+ df = df.T
73
+ df = df.reset_index()
74
+ ndvi_df = df[df["index"].str.contains("NDVI")]
75
+ ndvi_df["index"] = to_datetime(ndvi_df["index"], format="%Y-%m_NDVI")
76
+ ndvi_df = ndvi_df.rename(columns={"index": "Date", 0: name})
77
+
78
+ cloud_mask_probability = df[df["index"].str.contains("MSK_CLDPRB")]
79
+ cloud_mask_probability["index"] = to_datetime(cloud_mask_probability["index"], format="%Y-%m_MSK_CLDPRB")
80
+ cloud_mask_probability = cloud_mask_probability.rename(columns={"index": "Date", 0: f"{name}_cloud_proba"})
81
+ # normalize
82
+ cloud_mask_probability[f"{name}_cloud_proba"] = cloud_mask_probability[f"{name}_cloud_proba"] / 100
83
+ df = merge(ndvi_df, cloud_mask_probability, on="Date", how="outer")
84
+ return df
85
+
86
+
87
+ def write_info(info):
88
+ st.write(f"<span style='color:#00FF00;'>{info}</span>", unsafe_allow_html=True)
89
+
90
+
91
+ ############################################
92
+ # App
93
+ ############################################
94
+
95
+ # Title
96
+ # make title in center
97
+ st.markdown(
98
+ f"""
99
+ <h1 style="text-align: center;">Mean NDVI Calculator</h1>
100
+ """,
101
+ unsafe_allow_html=True,
102
+ )
103
+
104
+ # Input: Date and Cloud Cover
105
+ col = st.columns(2)
106
+ start_date = col[0].date_input("Start Date", value=to_datetime("2021-01-01"))
107
+ end_date = col[1].date_input("End Date", value=to_datetime("2021-07-31"))
108
+ start_date = start_date.strftime("%Y-%m")
109
+ end_date = end_date.strftime("%Y-%m")
110
+ # max_cloud_cover = st.number_input("Max Cloud Cover (in percentage)", value=5)
111
+
112
+ # Input: GeoJSON/KML file
113
+ uploaded_file = st.file_uploader("Upload KML/GeoJSON file", type=["geojson", "kml"])
114
+ if uploaded_file is None:
115
+ st.stop()
116
+
117
+ file_name = uploaded_file.name
118
+ gdf = read_file(uploaded_file)
119
+ gdf = preprocess_gdf(gdf)
120
+
121
+ selected_shape = st.selectbox("Select the geometry", gdf.Name.values)
122
+ if selected_shape is None:
123
+ st.stop()
124
+
125
+ selected_shape = gdf[gdf.Name == selected_shape]
126
+ ee_object = geemap.gdf_to_ee(selected_shape)
127
+ write_info(f"Type of Geometry: {selected_shape.geometry.type.values[0]}")
128
+
129
+ st.write("Select the satellite sources:")
130
+ satellites = {
131
+ "LANDSAT/LC08/C02/T1_TOA": {
132
+ "selected": st.checkbox("LANDSAT/LC08/C02/T1_TOA", value=True),
133
+ "nir_band": "B5",
134
+ "red_band": "B4",
135
+ "scale": 30,
136
+ },
137
+ "COPERNICUS/S2_SR_HARMONIZED": {
138
+ "selected": st.checkbox("COPERNICUS/S2_SR_HARMONIZED", value=True),
139
+ "nir_band": "B8",
140
+ "red_band": "B4",
141
+ "scale": 10,
142
+ },
143
+ }
144
+
145
+ submit = st.button("Submit", use_container_width=True)
146
+ if submit:
147
+ if not any(satellites.values()):
148
+ st.error("Please select at least one satellite source")
149
+ st.stop()
150
+
151
+ # Create month range
152
+ dates = date_range(start_date, end_date, freq="MS").strftime("%Y-%m-%d").tolist()
153
+ write_info(
154
+ f"Start Date (inclusive): {start_date}, End Date (exclusive): {end_date}"
155
+ )
156
+
157
+ df_list = []
158
+ collections = {}
159
+ for satellite, attrs in satellites.items():
160
+ if not attrs["selected"]:
161
+ continue
162
+ collection = ee.ImageCollection(satellite)
163
+ collection = collection.filterBounds(ee_object)
164
+ if satellite == "COPERNICUS/S2_SR_HARMONIZED":
165
+ collection = collection.select([attrs["red_band"], attrs["nir_band"], "MSK_CLDPRB"])
166
+ else:
167
+ collection = collection.select([attrs["red_band"], attrs["nir_band"]])
168
+ # collection = collection.filter(ee.Filter.lt(attrs["cloud_cover_var"], max_cloud_cover))
169
+ collection = collection.filterDate(start_date, end_date)
170
+ collection = collection.map(
171
+ lambda image: calculate_ndvi(
172
+ image, nir_band=attrs["nir_band"], red_band=attrs["red_band"]
173
+ )
174
+ )
175
+ write_info(f"Number of images in {satellite}: {collection.size().getInfo()}")
176
+
177
+ progress_bar = st.progress(0)
178
+
179
+ def monthly_quality_mosaic(start, end, i):
180
+ progress_bar.progress((i + 1) / (len(dates) - 1))
181
+ collection_filtered = collection.filterDate(start, end)
182
+ size = collection_filtered.size().getInfo()
183
+ if size == 0:
184
+ return None
185
+ mosaic = collection_filtered.qualityMosaic("NDVI")
186
+ month = to_datetime(start).strftime("%Y-%m")
187
+ print(f"Processing {month} with {size} images")
188
+ return mosaic.set("system:index", f"{month}")
189
+
190
+ collection = [monthly_quality_mosaic(start, end, i) for i, (start, end) in enumerate(zip(dates[:-1], dates[1:]))]
191
+ collection = list(filter(None, collection))
192
+ collection = ee.ImageCollection(collection)
193
+ collections[satellite] = collection
194
+
195
+ save_name = satellite.replace("/", "_")
196
+ geemap.zonal_stats(
197
+ collection,#.select(["NDVI"]),
198
+ ee_object,
199
+ f"/tmp/{save_name}.csv",
200
+ stat_type="mean",
201
+ scale=attrs["scale"],
202
+ )
203
+ df = read_csv(f"/tmp/{save_name}.csv")
204
+ df = postprocess_df(df, name=satellite)
205
+ df_list.append(df)
206
+
207
+ df = reduce(lambda left, right: merge(left, right, on="Date", how="outer"), df_list)
208
+ df = df.sort_values("Date")
209
+
210
+ # drop rows with all NaN values
211
+ df = df.dropna(how="all")
212
+ # drop columns with all NaN values
213
+ df = df.dropna(axis=1, how="all")
214
+
215
+ st.session_state.df = df
216
+ st.session_state.collections = collections
217
+
218
+ if "df" in st.session_state:
219
+ df = st.session_state.df
220
+ collections = st.session_state.collections
221
+ st.write(df.applymap(lambda x: f"{x:.2f}" if isinstance(x, float) else x))
222
+
223
+ fig = px.line(df, x="Date", y=df.columns[1:], title='Mean NDVI', markers=True)
224
+ fig.update_yaxes(range=[0, 1])
225
+ st.plotly_chart(fig)
226
+
227
+ st.subheader("Visual Inspection")
228
+
229
+ cols = st.columns(2)
230
+ with cols[0]:
231
+ start_date = st.selectbox("Start Date", df.Date, index=0)
232
+ start_date_index = df[df.Date == start_date].index[0].item()
233
+ with cols[1]:
234
+ end_date = st.selectbox("End Date", df.Date, index=len(df.Date) - 1)
235
+ end_date_index = df[df.Date == end_date].index[0].item()
236
+
237
+ for imagery in satellites:
238
+ collection = collections[imagery]
239
+ m_list = []
240
+ for col, date in zip(cols, [start_date, end_date]):
241
+ date_index = df[df.Date == date].index[0].item()
242
+ image = ee.Image(collections[imagery].toList(collection.size()).get(date_index))
243
+ layer = gee_folium.ee_tile_layer(image, {"bands": ["NDVI"], "min": 0, "max": 1}, f"{imagery}_{date}")
244
+
245
+ with col:
246
+ m = leaf_folium.Map()
247
+ m.add_layer(layer)
248
+ m.add_gdf(selected_shape, layer_name="Selected Geometry")
249
+ st.write(f"{imagery} - {date}")
250
+ m.to_streamlit()
251
+
252
+ for col, date in zip(cols, [start_date, end_date]):
253
+ esri_date = min(st.session_state.wayback_mapping.keys(), key=lambda x: abs(to_datetime(x) - date))
254
+ with col:
255
+ m = leaf_folium.Map()
256
+ m.add_tile_layer(st.session_state.wayback_mapping[esri_date], name=f"Esri Wayback Imagery - {date}", attribution="Esri")
257
+ m.add_gdf(selected_shape, layer_name="Selected Geometry")
258
+ st.write(f"Esri Wayback Imagery - {esri_date} (Closest to {date})")
259
+ m.to_streamlit()
credentials ADDED
@@ -0,0 +1 @@
 
 
1
+ {"client_id": "815228341823-nlgp8nt2hueogp4cgq0avu4p96286q9p.apps.googleusercontent.com", "client_secret": "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", "refresh_token": "1//0g0DefNLVVZCjCgYIARAAGBASNwF-L9IrOXqMvRqJ4vo9O5JN-3GXbzr0gaoqlWOWKIq56qLqYlLl-DU_2EoCd11TN-nZD1Us-4Y", "scopes": ["https://www.googleapis.com/auth/earthengine", "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/devstorage.full_control"]}
dezkvf.geojson ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "type": "FeatureCollection",
3
+ "name": "dezkvf",
4
+ "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
5
+ "features": [
6
+ { "type": "Feature", "properties": { "Name": "kelava 25 he", "Description": "<div><b>kelava irrigation he 25&nbsp;</b><br></div><div><b>Year 2022-23</b><br></div>" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 73.197914709471448, 24.019776408586271, 0.0 ], [ 73.195116560943902, 24.017540941492609, 0.0 ], [ 73.195520536704294, 24.017383406835211, 0.0 ], [ 73.194800334002622, 24.015236193127709, 0.0 ], [ 73.194636950732615, 24.014403118717031, 0.0 ], [ 73.194542860108086, 24.0139003560814, 0.0 ], [ 73.194244339216496, 24.0126807914708, 0.0 ], [ 73.194234194479606, 24.0126863557728, 0.0 ], [ 73.196535112752471, 24.012520238854709, 0.0 ], [ 73.196484322109839, 24.01217871972386, 0.0 ], [ 73.197648612812372, 24.011999301879619, 0.0 ], [ 73.198172869309701, 24.014332547414551, 0.0 ], [ 73.198681981415604, 24.01611200638915, 0.0 ], [ 73.199597451332266, 24.01895266153662, 0.0 ], [ 73.197914709471448, 24.019776408586271, 0.0 ] ] ] } },
7
+ { "type": "Feature", "properties": { "Name": "golvada AAR he 10", "Description": "" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 73.261430193721736, 23.948423897273148, 0.0 ], [ 73.261454558343772, 23.94770292293428, 0.0 ], [ 73.261316183243395, 23.947303629454801, 0.0 ], [ 73.260996974055246, 23.947413576226051, 0.0 ], [ 73.261040167345797, 23.94789796349275, 0.0 ], [ 73.260683596689233, 23.948250089201601, 0.0 ], [ 73.259412433237358, 23.947635029970598, 0.0 ], [ 73.258444544316092, 23.947678147449921, 0.0 ], [ 73.25826068055234, 23.947345888900731, 0.0 ], [ 73.261022668996318, 23.946173705133479, 0.0 ], [ 73.261065680444318, 23.945581465762931, 0.0 ], [ 73.263064354844005, 23.944893769638622, 0.0 ], [ 73.263452135972344, 23.948939645127538, 0.0 ], [ 73.26215495742278, 23.94956954455791, 0.0 ], [ 73.261430193721736, 23.948423897273148, 0.0 ] ] ] } },
8
+ { "type": "Feature", "properties": { "Name": "Golvada he 10", "Description": "" }, "geometry": { "type": "Point", "coordinates": [ 73.262362465970142, 23.947286317747501, 348.096590272880121 ] } }
9
+ ]
10
+ }
golvada he 10 2023-24.kml ADDED
@@ -0,0 +1,235 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
3
+ <Document>
4
+ <name>golvada he 10 2023-24</name>
5
+ <StyleMap id="__managed_style_689C019E91332BD1EC88">
6
+ <Pair>
7
+ <key>normal</key>
8
+ <styleUrl>#__managed_style_79BDFF2A5D332BD1EC88</styleUrl>
9
+ </Pair>
10
+ <Pair>
11
+ <key>highlight</key>
12
+ <styleUrl>#__managed_style_8DE467F478332BD1EC88</styleUrl>
13
+ </Pair>
14
+ </StyleMap>
15
+ <gx:CascadingStyle kml:id="__managed_style_550D7CA50D332BD1EC88">
16
+ <Style>
17
+ <IconStyle>
18
+ <scale>1.2</scale>
19
+ <Icon>
20
+ <href>https://earth.google.com/earth/rpc/cc/icon?color=1976d2&amp;id=2000&amp;scale=4</href>
21
+ </Icon>
22
+ <hotSpot x="64" y="128" xunits="pixels" yunits="insetPixels"/>
23
+ </IconStyle>
24
+ <LabelStyle>
25
+ </LabelStyle>
26
+ <LineStyle>
27
+ <color>ff2dc0fb</color>
28
+ <width>4.8772</width>
29
+ </LineStyle>
30
+ <PolyStyle>
31
+ <color>00ffffff</color>
32
+ </PolyStyle>
33
+ <BalloonStyle>
34
+ <displayMode>hide</displayMode>
35
+ </BalloonStyle>
36
+ </Style>
37
+ </gx:CascadingStyle>
38
+ <gx:CascadingStyle kml:id="__managed_style_490CBAF8C4332BD1EC88">
39
+ <Style>
40
+ <IconStyle>
41
+ <Icon>
42
+ <href>https://earth.google.com/earth/rpc/cc/icon?color=1976d2&amp;id=2000&amp;scale=4</href>
43
+ </Icon>
44
+ <hotSpot x="64" y="128" xunits="pixels" yunits="insetPixels"/>
45
+ </IconStyle>
46
+ <LabelStyle>
47
+ </LabelStyle>
48
+ <LineStyle>
49
+ <color>ff2dc0fb</color>
50
+ <width>3.25146</width>
51
+ </LineStyle>
52
+ <PolyStyle>
53
+ <color>00ffffff</color>
54
+ </PolyStyle>
55
+ <BalloonStyle>
56
+ <displayMode>hide</displayMode>
57
+ </BalloonStyle>
58
+ </Style>
59
+ </gx:CascadingStyle>
60
+ <gx:CascadingStyle kml:id="__managed_style_79BDFF2A5D332BD1EC88">
61
+ <Style>
62
+ <IconStyle>
63
+ <Icon>
64
+ <href>https://earth.google.com/earth/rpc/cc/icon?color=1976d2&amp;id=2000&amp;scale=4</href>
65
+ </Icon>
66
+ <hotSpot x="64" y="128" xunits="pixels" yunits="insetPixels"/>
67
+ </IconStyle>
68
+ <LabelStyle>
69
+ </LabelStyle>
70
+ <LineStyle>
71
+ <color>ff2dc0fb</color>
72
+ <width>1.62594</width>
73
+ </LineStyle>
74
+ <PolyStyle>
75
+ <color>40ffffff</color>
76
+ </PolyStyle>
77
+ <BalloonStyle>
78
+ <displayMode>hide</displayMode>
79
+ </BalloonStyle>
80
+ </Style>
81
+ </gx:CascadingStyle>
82
+ <StyleMap id="__managed_style_345C91A241332BD1EC88">
83
+ <Pair>
84
+ <key>normal</key>
85
+ <styleUrl>#__managed_style_490CBAF8C4332BD1EC88</styleUrl>
86
+ </Pair>
87
+ <Pair>
88
+ <key>highlight</key>
89
+ <styleUrl>#__managed_style_550D7CA50D332BD1EC88</styleUrl>
90
+ </Pair>
91
+ </StyleMap>
92
+ <gx:CascadingStyle kml:id="__managed_style_8DE467F478332BD1EC88">
93
+ <Style>
94
+ <IconStyle>
95
+ <scale>1.2</scale>
96
+ <Icon>
97
+ <href>https://earth.google.com/earth/rpc/cc/icon?color=1976d2&amp;id=2000&amp;scale=4</href>
98
+ </Icon>
99
+ <hotSpot x="64" y="128" xunits="pixels" yunits="insetPixels"/>
100
+ </IconStyle>
101
+ <LabelStyle>
102
+ </LabelStyle>
103
+ <LineStyle>
104
+ <color>ff2dc0fb</color>
105
+ <width>2.4389</width>
106
+ </LineStyle>
107
+ <PolyStyle>
108
+ <color>40ffffff</color>
109
+ </PolyStyle>
110
+ <BalloonStyle>
111
+ <displayMode>hide</displayMode>
112
+ </BalloonStyle>
113
+ </Style>
114
+ </gx:CascadingStyle>
115
+ <gx:CascadingStyle kml:id="__managed_style_19AFB589B7332BD1EC88">
116
+ <styleUrl>https://earth.google.com/balloon_components/base/1.0.26.0/card_template.kml#main</styleUrl>
117
+ <Style>
118
+ <IconStyle>
119
+ <Icon>
120
+ <href>https://earth.google.com/earth/rpc/cc/icon?color=1976d2&amp;id=2000&amp;scale=4</href>
121
+ </Icon>
122
+ <hotSpot x="64" y="128" xunits="pixels" yunits="insetPixels"/>
123
+ </IconStyle>
124
+ <LabelStyle>
125
+ </LabelStyle>
126
+ <LineStyle>
127
+ <color>ff2dc0fb</color>
128
+ <width>1.62594</width>
129
+ </LineStyle>
130
+ <PolyStyle>
131
+ <color>00ffffff</color>
132
+ </PolyStyle>
133
+ <BalloonStyle>
134
+ </BalloonStyle>
135
+ </Style>
136
+ </gx:CascadingStyle>
137
+ <gx:CascadingStyle kml:id="__managed_style_234F72CC13332BD1EC88">
138
+ <styleUrl>https://earth.google.com/balloon_components/base/1.0.26.0/card_template.kml#main</styleUrl>
139
+ <Style>
140
+ <IconStyle>
141
+ <scale>1.2</scale>
142
+ <Icon>
143
+ <href>https://earth.google.com/earth/rpc/cc/icon?color=1976d2&amp;id=2000&amp;scale=4</href>
144
+ </Icon>
145
+ <hotSpot x="64" y="128" xunits="pixels" yunits="insetPixels"/>
146
+ </IconStyle>
147
+ <LabelStyle>
148
+ </LabelStyle>
149
+ <LineStyle>
150
+ <color>ff2dc0fb</color>
151
+ <width>2.4389</width>
152
+ </LineStyle>
153
+ <PolyStyle>
154
+ <color>00ffffff</color>
155
+ </PolyStyle>
156
+ <BalloonStyle>
157
+ </BalloonStyle>
158
+ </Style>
159
+ </gx:CascadingStyle>
160
+ <StyleMap id="__managed_style_065B29A536332BD1EC88">
161
+ <Pair>
162
+ <key>normal</key>
163
+ <styleUrl>#__managed_style_19AFB589B7332BD1EC88</styleUrl>
164
+ </Pair>
165
+ <Pair>
166
+ <key>highlight</key>
167
+ <styleUrl>#__managed_style_234F72CC13332BD1EC88</styleUrl>
168
+ </Pair>
169
+ </StyleMap>
170
+ <Placemark id="07BC2552BA32C316F21E">
171
+ <name>kelava 25 he</name>
172
+ <description><![CDATA[<div><b>kelava irrigation he 25&nbsp;</b><br></div><div><b>Year 2022-23</b><br></div>]]></description>
173
+ <LookAt>
174
+ <longitude>73.19426839387742</longitude>
175
+ <latitude>24.01576379553443</latitude>
176
+ <altitude>280.5090231089874</altitude>
177
+ <heading>108.7976786328946</heading>
178
+ <tilt>0</tilt>
179
+ <gx:fovy>35</gx:fovy>
180
+ <range>3944.221455875086</range>
181
+ <altitudeMode>absolute</altitudeMode>
182
+ </LookAt>
183
+ <styleUrl>#__managed_style_065B29A536332BD1EC88</styleUrl>
184
+ <Polygon>
185
+ <outerBoundaryIs>
186
+ <LinearRing>
187
+ <coordinates>
188
+ 73.19791470947145,24.01977640858627,0 73.1951165609439,24.01754094149261,0 73.19552053670429,24.01738340683521,0 73.19480033400262,24.01523619312771,0 73.19463695073262,24.01440311871703,0 73.19454286010809,24.0139003560814,0 73.1942443392165,24.0126807914708,0 73.19423419447961,24.0126863557728,0 73.19653511275247,24.01252023885471,0 73.19648432210984,24.01217871972386,0 73.19764861281237,24.01199930187962,0 73.1981728693097,24.01433254741455,0 73.1986819814156,24.01611200638915,0 73.19959745133227,24.01895266153662,0 73.19791470947145,24.01977640858627,0
189
+ </coordinates>
190
+ </LinearRing>
191
+ </outerBoundaryIs>
192
+ </Polygon>
193
+ </Placemark>
194
+ <Placemark id="017E1C926F32C321384B">
195
+ <name>golvada AAR he 10</name>
196
+ <LookAt>
197
+ <longitude>73.26007898563958</longitude>
198
+ <latitude>23.94513383697879</latitude>
199
+ <altitude>344.9051226907054</altitude>
200
+ <heading>24.85025074686223</heading>
201
+ <tilt>0</tilt>
202
+ <gx:fovy>30.00004100868316</gx:fovy>
203
+ <range>3032.777194715746</range>
204
+ <altitudeMode>absolute</altitudeMode>
205
+ </LookAt>
206
+ <styleUrl>#__managed_style_345C91A241332BD1EC88</styleUrl>
207
+ <Polygon>
208
+ <outerBoundaryIs>
209
+ <LinearRing>
210
+ <coordinates>
211
+ 73.26143019372174,23.94842389727315,0 73.26145455834377,23.94770292293428,0 73.26131618324339,23.9473036294548,0 73.26099697405525,23.94741357622605,0 73.2610401673458,23.94789796349275,0 73.26068359668923,23.9482500892016,0 73.25941243323736,23.9476350299706,0 73.25844454431609,23.94767814744992,0 73.25826068055234,23.94734588890073,0 73.26102266899632,23.94617370513348,0 73.26106568044432,23.94558146576293,0 73.263064354844,23.94489376963862,0 73.26345213597234,23.94893964512754,0 73.26215495742278,23.94956954455791,0 73.26143019372174,23.94842389727315,0
212
+ </coordinates>
213
+ </LinearRing>
214
+ </outerBoundaryIs>
215
+ </Polygon>
216
+ </Placemark>
217
+ <Placemark id="0441639A5132C3256BE1">
218
+ <name>Golvada he 10</name>
219
+ <LookAt>
220
+ <longitude>73.26236246597014</longitude>
221
+ <latitude>23.9472863177475</latitude>
222
+ <altitude>348.0965902728801</altitude>
223
+ <heading>24.85117754611951</heading>
224
+ <tilt>0</tilt>
225
+ <gx:fovy>30.00004100868316</gx:fovy>
226
+ <range>3029.903914078313</range>
227
+ <altitudeMode>absolute</altitudeMode>
228
+ </LookAt>
229
+ <styleUrl>#__managed_style_689C019E91332BD1EC88</styleUrl>
230
+ <Point>
231
+ <coordinates>73.26236246597014,23.9472863177475,348.0965902728801</coordinates>
232
+ </Point>
233
+ </Placemark>
234
+ </Document>
235
+ </kml>
gzn.html ADDED
File without changes
jitewu.geojson ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "type": "FeatureCollection",
3
+ "name": "jitewu",
4
+ "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
5
+ "features": [
6
+ { "type": "Feature", "properties": { "Name": "kelava 25 he", "Description": "<div><b>kelava irrigation he 25&nbsp;</b><br></div><div><b>Year 2022-23</b><br></div>" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 73.197914709471448, 24.019776408586271, 0.0 ], [ 73.195116560943902, 24.017540941492609, 0.0 ], [ 73.195520536704294, 24.017383406835211, 0.0 ], [ 73.194800334002622, 24.015236193127709, 0.0 ], [ 73.194636950732615, 24.014403118717031, 0.0 ], [ 73.194542860108086, 24.0139003560814, 0.0 ], [ 73.194244339216496, 24.0126807914708, 0.0 ], [ 73.194234194479606, 24.0126863557728, 0.0 ], [ 73.196535112752471, 24.012520238854709, 0.0 ], [ 73.196484322109839, 24.01217871972386, 0.0 ], [ 73.197648612812372, 24.011999301879619, 0.0 ], [ 73.198172869309701, 24.014332547414551, 0.0 ], [ 73.198681981415604, 24.01611200638915, 0.0 ], [ 73.199597451332266, 24.01895266153662, 0.0 ], [ 73.197914709471448, 24.019776408586271, 0.0 ] ] ] } }
7
+ ]
8
+ }
lybaeb.geojson ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "type": "FeatureCollection",
3
+ "name": "lybaeb",
4
+ "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
5
+ "features": [
6
+ { "type": "Feature", "properties": { "Name": "kelava 25 he", "Description": "<div><b>kelava irrigation he 25&nbsp;</b><br></div><div><b>Year 2022-23</b><br></div>" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 73.197914709471448, 24.019776408586271, 0.0 ], [ 73.195116560943902, 24.017540941492609, 0.0 ], [ 73.195520536704294, 24.017383406835211, 0.0 ], [ 73.194800334002622, 24.015236193127709, 0.0 ], [ 73.194636950732615, 24.014403118717031, 0.0 ], [ 73.194542860108086, 24.0139003560814, 0.0 ], [ 73.194244339216496, 24.0126807914708, 0.0 ], [ 73.194234194479606, 24.0126863557728, 0.0 ], [ 73.196535112752471, 24.012520238854709, 0.0 ], [ 73.196484322109839, 24.01217871972386, 0.0 ], [ 73.197648612812372, 24.011999301879619, 0.0 ], [ 73.198172869309701, 24.014332547414551, 0.0 ], [ 73.198681981415604, 24.01611200638915, 0.0 ], [ 73.199597451332266, 24.01895266153662, 0.0 ], [ 73.197914709471448, 24.019776408586271, 0.0 ] ] ] } }
7
+ ]
8
+ }
rdnslj.geojson ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "type": "FeatureCollection",
3
+ "name": "rdnslj",
4
+ "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
5
+ "features": [
6
+ { "type": "Feature", "properties": { "Name": "kelava 25 he", "Description": "<div><b>kelava irrigation he 25&nbsp;</b><br></div><div><b>Year 2022-23</b><br></div>" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 73.197914709471448, 24.019776408586271, 0.0 ], [ 73.195116560943902, 24.017540941492609, 0.0 ], [ 73.195520536704294, 24.017383406835211, 0.0 ], [ 73.194800334002622, 24.015236193127709, 0.0 ], [ 73.194636950732615, 24.014403118717031, 0.0 ], [ 73.194542860108086, 24.0139003560814, 0.0 ], [ 73.194244339216496, 24.0126807914708, 0.0 ], [ 73.194234194479606, 24.0126863557728, 0.0 ], [ 73.196535112752471, 24.012520238854709, 0.0 ], [ 73.196484322109839, 24.01217871972386, 0.0 ], [ 73.197648612812372, 24.011999301879619, 0.0 ], [ 73.198172869309701, 24.014332547414551, 0.0 ], [ 73.198681981415604, 24.01611200638915, 0.0 ], [ 73.199597451332266, 24.01895266153662, 0.0 ], [ 73.197914709471448, 24.019776408586271, 0.0 ] ] ] } }
7
+ ]
8
+ }
requirements.txt ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ fastkml
2
+ geopandas
3
+ geemap
4
+ pandas
5
+ geojson
sandbox.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
small_app.py ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ # full width display
3
+ st.set_page_config(layout="wide")
4
+
5
+ import leafmap.foliumap as leafmap
6
+
7
+ layers = ["Esri.WorldTopoMap", "OpenTopoMap"]
8
+ m1 = leafmap.Map()
9
+ m1.add_basemap("Esri.WorldTopoMap")
10
+
11
+ m2 = leafmap.Map()
12
+ m2.add_basemap("OpenTopoMap")
13
+
14
+ cols = st.columns(2)
15
+ with cols[0]:
16
+ m1.to_streamlit()
17
+ with cols[1]:
18
+ m2.to_streamlit()
19
+ # leafmap.linked_maps(rows=1, cols=2, height="400px", layers=layers)
tmp.csv ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ 20210112T054211_20210112T054208_T43QCG_NDVI,20210117T054149_20210117T054151_T43QCG_NDVI,20210122T054131_20210122T054132_T43QCG_NDVI,20210127T054109_20210127T055157_T43QCG_NDVI,system:index,Name
2
+ 0.5412110887471273,0.49817145677100677,0.5045362449588447,0.4920719918276227,0,bhankhara Df
tmp.geojson ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "type": "FeatureCollection",
3
+ "name": "tmp",
4
+ "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
5
+ "features": [
6
+ { "type": "Feature", "properties": { "Name": "bhankhara Df ", "Description": "" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 73.23288020595453, 23.929349201521649, 0.0 ], [ 73.2320424558106, 23.9295414782706, 0.0 ], [ 73.231770305881511, 23.929079612195199, 0.0 ], [ 73.230492834793765, 23.92975711242018, 0.0 ], [ 73.2296710069635, 23.93046123326063, 0.0 ], [ 73.2287325848189, 23.92942606846368, 0.0 ], [ 73.230010982152635, 23.928454021654819, 0.0 ], [ 73.231320825956956, 23.92741616938989, 0.0 ], [ 73.23174863262777, 23.927741259655061, 0.0 ], [ 73.23240516734252, 23.927898156106021, 0.0 ], [ 73.23288020595453, 23.929349201521649, 0.0 ] ] ] } }
7
+ ]
8
+ }
wayback_imagery.json ADDED
@@ -0,0 +1,177 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "2024-10-10": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/56450/{z}/{y}/{x}",
3
+ "2024-09-19": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/20337/{z}/{y}/{x}",
4
+ "2024-08-15": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/32553/{z}/{y}/{x}",
5
+ "2024-06-27": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/39767/{z}/{y}/{x}",
6
+ "2024-06-06": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/12428/{z}/{y}/{x}",
7
+ "2024-05-09": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/52930/{z}/{y}/{x}",
8
+ "2024-03-28": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/13968/{z}/{y}/{x}",
9
+ "2024-03-07": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/60013/{z}/{y}/{x}",
10
+ "2024-02-08": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/37965/{z}/{y}/{x}",
11
+ "2024-01-18": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/41468/{z}/{y}/{x}",
12
+ "2023-12-07": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/56102/{z}/{y}/{x}",
13
+ "2023-11-01": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/12457/{z}/{y}/{x}",
14
+ "2023-10-11": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/1034/{z}/{y}/{x}",
15
+ "2023-08-31": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/64776/{z}/{y}/{x}",
16
+ "2023-08-10": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/17632/{z}/{y}/{x}",
17
+ "2023-06-29": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/47963/{z}/{y}/{x}",
18
+ "2023-06-13": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/25982/{z}/{y}/{x}",
19
+ "2023-05-03": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/46399/{z}/{y}/{x}",
20
+ "2023-04-05": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/37890/{z}/{y}/{x}",
21
+ "2023-03-15": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/44873/{z}/{y}/{x}",
22
+ "2023-02-23": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/57965/{z}/{y}/{x}",
23
+ "2023-01-11": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11475/{z}/{y}/{x}",
24
+ "2022-12-14": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/45134/{z}/{y}/{x}",
25
+ "2022-11-02": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/7110/{z}/{y}/{x}",
26
+ "2022-10-12": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/44988/{z}/{y}/{x}",
27
+ "2022-09-21": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/47471/{z}/{y}/{x}",
28
+ "2022-08-31": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/45441/{z}/{y}/{x}",
29
+ "2022-08-10": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/17825/{z}/{y}/{x}",
30
+ "2022-07-20": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/13851/{z}/{y}/{x}",
31
+ "2022-06-29": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/4905/{z}/{y}/{x}",
32
+ "2022-06-08": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/44710/{z}/{y}/{x}",
33
+ "2022-05-18": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/5314/{z}/{y}/{x}",
34
+ "2022-04-27": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/16245/{z}/{y}/{x}",
35
+ "2022-04-06": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/48232/{z}/{y}/{x}",
36
+ "2022-03-16": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/10321/{z}/{y}/{x}",
37
+ "2022-02-24": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/10312/{z}/{y}/{x}",
38
+ "2022-02-02": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/26083/{z}/{y}/{x}",
39
+ "2022-01-12": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/42663/{z}/{y}/{x}",
40
+ "2021-12-21": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/26120/{z}/{y}/{x}",
41
+ "2021-11-30": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/48624/{z}/{y}/{x}",
42
+ "2021-11-03": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/42403/{z}/{y}/{x}",
43
+ "2021-10-13": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/16749/{z}/{y}/{x}",
44
+ "2021-09-22": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/51313/{z}/{y}/{x}",
45
+ "2021-09-01": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/47568/{z}/{y}/{x}",
46
+ "2021-08-11": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/51423/{z}/{y}/{x}",
47
+ "2021-07-21": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/8432/{z}/{y}/{x}",
48
+ "2021-06-30": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/13534/{z}/{y}/{x}",
49
+ "2021-06-09": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/48376/{z}/{y}/{x}",
50
+ "2021-05-19": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/15423/{z}/{y}/{x}",
51
+ "2021-04-28": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/27659/{z}/{y}/{x}",
52
+ "2021-04-08": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/6863/{z}/{y}/{x}",
53
+ "2021-03-17": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/5359/{z}/{y}/{x}",
54
+ "2021-02-24": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/9812/{z}/{y}/{x}",
55
+ "2021-01-13": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/1049/{z}/{y}/{x}",
56
+ "2020-12-16": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/29260/{z}/{y}/{x}",
57
+ "2020-11-18": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/20753/{z}/{y}/{x}",
58
+ "2020-10-14": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/119/{z}/{y}/{x}",
59
+ "2020-09-23": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/19187/{z}/{y}/{x}",
60
+ "2020-09-02": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/9181/{z}/{y}/{x}",
61
+ "2020-08-12": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/6049/{z}/{y}/{x}",
62
+ "2020-07-22": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/9549/{z}/{y}/{x}",
63
+ "2020-07-01": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/18289/{z}/{y}/{x}",
64
+ "2020-06-10": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11135/{z}/{y}/{x}",
65
+ "2020-05-20": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/32645/{z}/{y}/{x}",
66
+ "2020-04-29": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/15045/{z}/{y}/{x}",
67
+ "2020-04-08": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/26751/{z}/{y}/{x}",
68
+ "2020-03-23": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/16062/{z}/{y}/{x}",
69
+ "2020-02-20": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/8495/{z}/{y}/{x}",
70
+ "2020-01-30": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/21485/{z}/{y}/{x}",
71
+ "2020-01-08": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/23001/{z}/{y}/{x}",
72
+ "2019-12-12": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/4756/{z}/{y}/{x}",
73
+ "2019-10-30": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11060/{z}/{y}/{x}",
74
+ "2019-10-09": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11351/{z}/{y}/{x}",
75
+ "2019-09-18": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/9892/{z}/{y}/{x}",
76
+ "2019-08-28": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/30442/{z}/{y}/{x}",
77
+ "2019-08-07": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/17216/{z}/{y}/{x}",
78
+ "2019-07-17": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/16681/{z}/{y}/{x}",
79
+ "2019-06-26": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/645/{z}/{y}/{x}",
80
+ "2019-06-05": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/12576/{z}/{y}/{x}",
81
+ "2019-05-15": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/9598/{z}/{y}/{x}",
82
+ "2019-04-24": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/18063/{z}/{y}/{x}",
83
+ "2019-04-03": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/18691/{z}/{y}/{x}",
84
+ "2019-03-13": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/4383/{z}/{y}/{x}",
85
+ "2019-02-21": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/17677/{z}/{y}/{x}",
86
+ "2019-01-31": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/25944/{z}/{y}/{x}",
87
+ "2019-01-09": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/6036/{z}/{y}/{x}",
88
+ "2018-12-14": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/23448/{z}/{y}/{x}",
89
+ "2018-11-29": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/239/{z}/{y}/{x}",
90
+ "2018-11-07": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/3201/{z}/{y}/{x}",
91
+ "2018-10-17": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/18820/{z}/{y}/{x}",
92
+ "2018-09-26": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/14426/{z}/{y}/{x}",
93
+ "2018-09-06": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/2168/{z}/{y}/{x}",
94
+ "2018-08-15": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/1858/{z}/{y}/{x}",
95
+ "2018-07-25": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/14829/{z}/{y}/{x}",
96
+ "2018-06-27": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11334/{z}/{y}/{x}",
97
+ "2018-06-06": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/8249/{z}/{y}/{x}",
98
+ "2018-05-16": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/32337/{z}/{y}/{x}",
99
+ "2018-04-25": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/1296/{z}/{y}/{x}",
100
+ "2018-04-11": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/20399/{z}/{y}/{x}",
101
+ "2018-03-28": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/7072/{z}/{y}/{x}",
102
+ "2018-03-14": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/8255/{z}/{y}/{x}",
103
+ "2018-02-23": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/13067/{z}/{y}/{x}",
104
+ "2018-01-31": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/10768/{z}/{y}/{x}",
105
+ "2018-01-18": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/13045/{z}/{y}/{x}",
106
+ "2018-01-08": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/13161/{z}/{y}/{x}",
107
+ "2017-11-16": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/25521/{z}/{y}/{x}",
108
+ "2017-10-25": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/23264/{z}/{y}/{x}",
109
+ "2017-10-04": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/15212/{z}/{y}/{x}",
110
+ "2017-09-13": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/18358/{z}/{y}/{x}",
111
+ "2017-08-30": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/25379/{z}/{y}/{x}",
112
+ "2017-08-10": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/14035/{z}/{y}/{x}",
113
+ "2017-07-14": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/3319/{z}/{y}/{x}",
114
+ "2017-06-27": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/4073/{z}/{y}/{x}",
115
+ "2017-06-14": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/14765/{z}/{y}/{x}",
116
+ "2017-05-31": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/14342/{z}/{y}/{x}",
117
+ "2017-05-17": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/20365/{z}/{y}/{x}",
118
+ "2017-05-03": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/784/{z}/{y}/{x}",
119
+ "2017-04-19": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/1052/{z}/{y}/{x}",
120
+ "2017-03-29": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/5205/{z}/{y}/{x}",
121
+ "2017-03-15": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/29387/{z}/{y}/{x}",
122
+ "2017-02-27": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/31026/{z}/{y}/{x}",
123
+ "2017-02-08": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/27946/{z}/{y}/{x}",
124
+ "2017-01-25": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/9486/{z}/{y}/{x}",
125
+ "2017-01-11": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/577/{z}/{y}/{x}",
126
+ "2016-12-20": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/18966/{z}/{y}/{x}",
127
+ "2016-12-07": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/6678/{z}/{y}/{x}",
128
+ "2016-11-16": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/21750/{z}/{y}/{x}",
129
+ "2016-10-25": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/4222/{z}/{y}/{x}",
130
+ "2016-10-12": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/13770/{z}/{y}/{x}",
131
+ "2016-09-14": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/6984/{z}/{y}/{x}",
132
+ "2016-08-31": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/9175/{z}/{y}/{x}",
133
+ "2016-08-11": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/23601/{z}/{y}/{x}",
134
+ "2016-07-20": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/5097/{z}/{y}/{x}",
135
+ "2016-07-06": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/13240/{z}/{y}/{x}",
136
+ "2016-06-13": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11509/{z}/{y}/{x}",
137
+ "2016-05-11": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/8551/{z}/{y}/{x}",
138
+ "2016-04-28": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/5769/{z}/{y}/{x}",
139
+ "2016-04-20": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/388/{z}/{y}/{x}",
140
+ "2016-03-16": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/19085/{z}/{y}/{x}",
141
+ "2016-03-02": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/20443/{z}/{y}/{x}",
142
+ "2016-02-17": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11262/{z}/{y}/{x}",
143
+ "2016-02-04": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/6354/{z}/{y}/{x}",
144
+ "2016-01-13": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/3515/{z}/{y}/{x}",
145
+ "2015-12-16": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/28163/{z}/{y}/{x}",
146
+ "2015-11-18": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/8781/{z}/{y}/{x}",
147
+ "2015-10-28": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11092/{z}/{y}/{x}",
148
+ "2015-10-14": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/10850/{z}/{y}/{x}",
149
+ "2015-09-30": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/3630/{z}/{y}/{x}",
150
+ "2015-09-16": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/1431/{z}/{y}/{x}",
151
+ "2015-09-02": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/30584/{z}/{y}/{x}",
152
+ "2015-08-19": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/28219/{z}/{y}/{x}",
153
+ "2015-07-08": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/24007/{z}/{y}/{x}",
154
+ "2015-06-24": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11952/{z}/{y}/{x}",
155
+ "2015-05-13": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/19930/{z}/{y}/{x}",
156
+ "2015-04-30": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/23880/{z}/{y}/{x}",
157
+ "2015-04-15": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/9203/{z}/{y}/{x}",
158
+ "2015-03-25": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/2730/{z}/{y}/{x}",
159
+ "2015-03-18": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/15084/{z}/{y}/{x}",
160
+ "2015-02-18": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/10443/{z}/{y}/{x}",
161
+ "2015-01-21": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/20222/{z}/{y}/{x}",
162
+ "2014-12-30": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/5844/{z}/{y}/{x}",
163
+ "2014-12-18": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/14720/{z}/{y}/{x}",
164
+ "2014-12-03": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/23383/{z}/{y}/{x}",
165
+ "2014-11-12": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/30195/{z}/{y}/{x}",
166
+ "2014-10-29": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11019/{z}/{y}/{x}",
167
+ "2014-10-01": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/22692/{z}/{y}/{x}",
168
+ "2014-09-17": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/25586/{z}/{y}/{x}",
169
+ "2014-07-30": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/5232/{z}/{y}/{x}",
170
+ "2014-07-02": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/3026/{z}/{y}/{x}",
171
+ "2014-06-25": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/11033/{z}/{y}/{x}",
172
+ "2014-06-11": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/31144/{z}/{y}/{x}",
173
+ "2014-05-14": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/16513/{z}/{y}/{x}",
174
+ "2014-04-30": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/19819/{z}/{y}/{x}",
175
+ "2014-03-26": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/4230/{z}/{y}/{x}",
176
+ "2014-02-20": "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/GoogleMapsCompatible/MapServer/tile/10/{z}/{y}/{x}"
177
+ }
zonal_stats.csv ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ mean,system:index,Description,Name
2
+ 0.08817322105067514,0,<div><b>kelava irrigation he 25&nbsp;</b><br></div><div><b>Year 2022-23</b><br></div>,kelava 25 he