giswqs commited on
Commit
5100b10
1 Parent(s): 0f4aec3

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +76 -0
app.py ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ import leafmap.foliumap as leafmap
4
+
5
+ st.set_page_config(layout="wide")
6
+
7
+ url = 'https://giswqs.github.io/maxar-open-data'
8
+ repo = 'https://github.com/giswqs/maxar-open-data/blob/master/datasets'
9
+ m = leafmap.Map()
10
+
11
+
12
+ @st.cache
13
+ def get_datasets():
14
+ datasets = f'{url}/datasets.csv'
15
+ df = pd.read_csv(datasets)
16
+ return df
17
+
18
+
19
+ @st.cache
20
+ def get_catalogs(name):
21
+ dataset = f'{url}/datasets/{name}.tsv'
22
+
23
+ dataset_df = pd.read_csv(dataset, sep='\t')
24
+ catalog_ids = dataset_df['catalog_id'].unique().tolist()
25
+ return catalog_ids
26
+
27
+
28
+ st.title('Visualizing Maxar Open Data')
29
+
30
+ col1, col2 = st.columns([1, 4])
31
+
32
+ with col1:
33
+ default = 'Kahramanmaras-turkey-earthquake-23'
34
+ datasets = get_datasets()['dataset'].tolist()
35
+ dataset = st.selectbox('Select a dataset', datasets, index=datasets.index(default))
36
+ catalog = st.selectbox('Select a COG mosaic', get_catalogs(dataset))
37
+ geojson = f'{url}/datasets/{dataset}.geojson'
38
+ mosaic = f'{url}/datasets/{dataset}/{catalog}.json'
39
+ tsv = f'{repo}/{dataset}/{catalog}.tsv'
40
+ st.markdown(f'View metadata: [{catalog}.tsv]({tsv})')
41
+
42
+ with st.expander("Python code snippets"):
43
+ markdown = f"""
44
+ import leafmap.foliumap as leafmap
45
+ m = leafmap.Map()
46
+ geojson = '{geojson}'
47
+ mosaic = '{mosaic}'
48
+ m.add_geojson(geojson, layer_name='{dataset}', info_mode='on_click')
49
+ m.add_stac_layer(mosaic, name='{catalog}')
50
+ m
51
+ """
52
+ st.code(markdown)
53
+
54
+
55
+ style = {
56
+ 'weight': 1,
57
+ 'fillOpacity': 0
58
+ }
59
+ m.add_geojson(geojson, layer_name=dataset, style=style, info_mode='on_click')
60
+ m.add_stac_layer(mosaic, name=catalog)
61
+
62
+ st.info('About')
63
+ markdown = f"""
64
+ - [Web App Source Code](https://github.com/giswqs/maxar-open-data/blob/master/streamlit_app.py)
65
+ - [GitHub Repo](https://github.com/giswqs/maxar-open-data)
66
+ - [Notebook Example](https://github.com/giswqs/maxar-open-data/blob/master/examples/maxar_open_data.ipynb)
67
+ - [Maxar Open Data Program](https://www.maxar.com/open-data)
68
+ - [Maxar Open Data on AWS](https://registry.opendata.aws/maxar-open-data/)
69
+ - [Maxar Open Data on STAC Index](https://stacindex.org/catalogs/maxar-open-data-catalog-ard-format#/)
70
+ - [Maxar Open Data on STAC Browser](https://radiantearth.github.io/stac-browser/#/external/maxar-opendata.s3.amazonaws.com/events/catalog.json?.language=en)
71
+ - Contact: [Qiusheng Wu](https://github.com/giswqs)
72
+ """
73
+ st.markdown(markdown)
74
+
75
+ with col2:
76
+ m.to_streamlit(height=780)