Spaces:
Sleeping
Sleeping
File size: 4,182 Bytes
0d67bf1 e091e44 de52544 68b2737 de52544 0d67bf1 99d0243 0d67bf1 de52544 0d67bf1 de52544 0d67bf1 de52544 68b2737 0d67bf1 de52544 0d67bf1 de52544 0d67bf1 de52544 0d67bf1 de52544 0d67bf1 de52544 0d67bf1 68b2737 0d67bf1 de52544 99d0243 68b2737 0d67bf1 de52544 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
import os
import ee
import geemap.foliumap as geemap
import streamlit as st
import pandas as pd
import numpy as np
st.set_page_config(page_title="TPL MAPPING",layout="wide")
st.markdown("""
<h1 style='text-align: center;'>Lake Distribution map of Tibet Plateau 🏔️</h1>
<h3 style='text-align: center;'><font color=Blue>YuJunchuan </font>(AGRS)</h3>
<br/>
""", unsafe_allow_html=True)
# geemap.set_proxy(33210)
row1_col1, row1_col2, row1_col3 = st.columns([6, 2,1])
Map = geemap.Map()
region = ee.FeatureCollection("projects/useful-tempest-341103/assets/water/TPBoundary")
datastart='2021-06-01'
dataend='2021-10-15'
def rmCloudByQA(image):
qa = image.select('QA60')
cloudBitMask = 1 << 10
cirrusBitMask = 1 << 11
mask =qa.bitwiseAnd(cloudBitMask).eq(0)and(qa.bitwiseAnd(cirrusBitMask).eq(0))
return image.updateMask(mask);
S2 = (ee.ImageCollection('COPERNICUS/S2_SR')
.filterDate(datastart,dataend)
.filterBounds(region)
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 50))
.map(rmCloudByQA)
.select('B.*')
.median()
.clip(region))
pred = ee.Image("projects/useful-tempest-341103/assets/TPlake/pred")
#
def pred_mask(pred,threshold):
mask=pred.where(pred.lt(threshold),0).where(pred.gte(threshold),1).toInt()
mask=mask.setDefaultProjection('epsg:4326',None,10)
water=mask.updateMask(mask.gt(0.5))
return water
with row1_col3:
st.sidebar.title("About")
st.sidebar.info(
"""
This web [app](https://junchuanyu-ldtp.hf.space) is maintained by [Junchuan Yu](https://junchuanyu.netlify.app/posts/). You can follow me on social media:
[GitHub](https://github.com/JunchuanYu) | [Zhihu](https://twitter.com/giswqs) .
Sentinel-2 is used as the data, and 8-band images are used as training data (B4, B3, B2, B8, B11, B12, MNDWI, SDWI). The model uses a multi-scale deep neural network model based on transfer learning, and is implemented using otop technology
"""
)
st.sidebar.title("Contect")
st.sidebar.info("Email: jason.yu.mail@qq.com")
with row1_col2:
basemaps = ['HYBRID', 'SATELLITE', 'TERRAIN']
basemap = st.selectbox("🗺️BASEMAP", basemaps,index=basemaps.index('HYBRID'))
Map.add_basemap(basemap)
Typicallakes = ["Typical Lakes", "Qinghai Lake", "Selincuo", "Zhaling Lake", "Eling Lake", "Zhuonai Lake", "Margai Chaka", "Kokexili Lake"]
lakeword = st.selectbox("🌊Typical Lakes", Typicallakes)
if lakeword == "Qinghai Lake":
Map.setCenter(100.192956,36.936857, zoom=9)
elif lakeword == "Selincuo":
Map.setCenter(88.955657,31.810172, zoom=10)
elif lakeword == "Zhaling Lake":
Map.setCenter(97.294221,34.938479, zoom=11)
elif lakeword == "Eling Lake":
Map.setCenter(97.70816,34.91575, zoom=11)
elif lakeword == "Zhuonai Lake":
Map.setCenter(91.944098,35.555848, zoom=11)
elif lakeword == "Margai Chaka":
Map.setCenter(86.768704,35.133507, zoom=12)
elif lakeword == "Kokexili Lake":
Map.setCenter(91.129067,35.595563, zoom=11)
else:
Map.setCenter(87.745,33.092, zoom=6)
Threshold = st.slider('♎Threshold', 0, 255, 128)
water=pred_mask(pred,Threshold)
split = st.checkbox("⛩️Split View")
if split:
left_layer = geemap.ee_tile_layer(water, {'min': 0, 'max':1, 'palette': '0905ff'}, name='water',opacity=0.5)
right_layer = geemap.ee_tile_layer(S2, {'min': 0, 'max':3000, 'bands': ['B4', 'B3', 'B2']},name='Image',shown=False)
Map.split_map(left_layer, right_layer)
else:
Map.addLayer(water, {'min': 0, 'max':1, 'palette': '0905ff'}, name='water',opacity=0.7)
st.markdown("", unsafe_allow_html=True)
st.markdown("👍 you can follow the WeChat public account [45度科研人] and leave me a message!", unsafe_allow_html=True)
st.markdown("""<div align=center><img width = '150' height ='150' src ="https://dunazo.oss-cn-beijing.aliyuncs.com/blog/wechat-simple.png"/></div>""", unsafe_allow_html=True)
with row1_col1:
Map.to_streamlit(weight=900,height=750) |