Spaces:
Running
Running
from huggingface_hub import hf_hub_download | |
# filepath = hf_hub_download( | |
# repo_id="Egrt/Luuuu", filename="GDAL-3.4.1-cp38-cp38-manylinux_2_5_x86_64.whl") | |
# import os | |
# os.system('pip install {}'.format(filepath)) | |
import os,glob,h5py,time | |
import gradio as gr | |
from PIL import Image | |
import numpy as np | |
from osgeo import gdal | |
from matplotlib import pyplot as plt | |
from tqdm import tqdm | |
token = os.environ['HUB_TOKEN'] | |
loc =hf_hub_download(repo_id="JunchuanYu/file_for_rs-tile-creator", filename="utils.py",repo_type="dataset",local_dir='.',token=token) | |
sys.path.append(loc) | |
from utils import * | |
title=(""" # <p align="center"> Remote Sensing Tile Dataset Creator 🛰️ <b> | |
### <p align="center"> yujunchuan (yujunchuna@mail.cgs.gov.cn)<b>""") | |
with gr.Blocks(theme=gr.themes.Soft(),css="footer {visibility: hidden}") as demo: | |
# dtype=gr.State(value=[]) | |
fullarray=gr.State(value=None) | |
cropdata=gr.State(value=None) | |
boriginal_img=gr.State(value=None) | |
boriginal_lab=gr.State(value=None) | |
gr.Markdown(title) | |
with gr.Tab("Basic Mode"): | |
with gr.Row(): | |
with gr.Column(scale=50): | |
# input_img=gr.Textbox(label='Input image path' ) | |
# input_lab=gr.Textbox(label='Input mask path') | |
input_img=gr.File(label='Input image path',height=100,scale=2) | |
outpath=gr.Textbox(label='Output path',lines=2) | |
with gr.Column(scale=50): | |
with gr.Row(): | |
datatype=gr.Radio(['Tiff','Hdf5'],interactive=True, type="value",value='Tiff',label='Data type') | |
with gr.Row(): | |
# with gr.Column(): | |
check_button = gr.Button("Check file") | |
with gr.Row(): | |
# with gr.Column(): | |
result=gr.Textbox(label='Logging info',lines=2,show_label=True) | |
with gr.Row(equal_height=True): | |
with gr.Column(): | |
with gr.Row(equal_height=True): | |
with gr.Column(scale=50): | |
with gr.Row(): | |
with gr.Column(scale=50): | |
clipmode=gr.Radio(['Sequential','Random'],interactive=True, type="value",value='Sequential',label='Clip mode') | |
with gr.Column(scale=50): | |
npatch=gr.Number(label="N patches",value=50,precision=0,interactive=True) | |
with gr.Row(): | |
thresh = gr.Slider(minimum=0, maximum=1, value=0, step=0.1, interactive=True, label="threshhold") | |
with gr.Column(scale=50): | |
with gr.Row(equal_height=True): | |
with gr.Column(scale=50): | |
cropsize = gr.Number(label="Crop size",value=256,precision=0,interactive=True) | |
run_button = gr.Button("Start",size='lg',scale=2,variant="primary") | |
with gr.Column(scale=50): | |
stride = gr.Number(label="Stride",value=256,precision=0,interactive=True) | |
# with gr.Row(equal_height=True): | |
save_button = gr.Button("Save",size='lg',scale=2,variant="primary") | |
with gr.Row(equal_height=True): | |
with gr.Column(scale=50): | |
original_img=gr.Image(label='Input image') | |
with gr.Column(scale=50): | |
original_lab=gr.Image(label='Input mask') | |
with gr.Column(scale=100): | |
show_pathes=gr.Image(label='Image tile') | |
with gr.Row(equal_height=True): | |
with gr.Column(scale=1): | |
start=gr.Number(label='Start number',value=0,precision=0,interactive=True) | |
with gr.Column(scale=1): | |
dstride=gr.Number(label='Show N files',value=10,precision=0,interactive=True) | |
with gr.Column(scale=2): | |
showtile=gr.Button('Show tile',size='lg',variant="primary") | |
tilecheck=gr.Button('Next tile',size='lg',variant="secondary") | |
with gr.Row(): | |
example = gr.Examples( | |
examples=[['./image/128_d4_32.tif','Tiff']], | |
fn=read_img_file, | |
inputs=[input_img,datatype], | |
outputs=[fullarray,original_img,original_lab], | |
cache_examples=False) | |
## BATCH MODE | |
with gr.Tab("Batch"): | |
with gr.Row(equal_height=True): | |
with gr.Column(scale=50): | |
binput_img=gr.File(label='Input image path',height=100,scale=3,file_count='multiple') | |
# with gr.Row(): | |
with gr.Column(scale=50): | |
with gr.Row(): | |
with gr.Column(): | |
bdatatype=gr.Radio(['Tiff','Hdf5'],interactive=True, type="value",value='Tiff',label='Data type') | |
with gr.Column(scale=20): | |
boutpath=gr.Textbox(label='Output path',lines=1) | |
with gr.Row(): | |
bcheck_button = gr.Button("Check file") | |
# with gr.Row(): | |
with gr.Row(equal_height=True): | |
with gr.Column(): | |
with gr.Row(equal_height=True): | |
with gr.Column(scale=50): | |
with gr.Row(): | |
with gr.Column(scale=50): | |
bclipmode=gr.Radio(['Sequential','Random'],interactive=True, type="value",value='Sequential',label='Clip mode') | |
with gr.Column(scale=50): | |
bnpatch=gr.Number(label="N patches",value=50,precision=0,interactive=True) | |
with gr.Row(): | |
bthresh = gr.Slider(minimum=0, maximum=1, value=0, step=0.1, interactive=True, label="threshhold") | |
with gr.Column(scale=50): | |
with gr.Row(): | |
with gr.Column(scale=50): | |
bcropsize = gr.Number(label="Crop size",value=256,precision=0,interactive=True) | |
with gr.Column(scale=50): | |
bstride = gr.Number(label="Stride",value=256,precision=0,interactive=True) | |
with gr.Row(): | |
brun_button = gr.Button("Start",size='lg',scale=2,variant="primary") | |
with gr.Row(): | |
with gr.Column(scale=50): | |
boriginal_img=gr.Image(label='Input image') | |
with gr.Column(scale=50): | |
boriginal_lab=gr.Image(label='Input mask') | |
with gr.Column(scale=100): | |
bresult=gr.Textbox(label='Logging info',lines=8,show_label=True) | |
with gr.Row(): | |
example = gr.Examples( | |
examples=[[glob.glob('./image/*.tif'),'Tiff','./image']], | |
fn=batch_check_file, | |
inputs=[binput_img,bdatatype,boutpath], | |
outputs=[bresult], | |
cache_examples=False) | |
input_img.change(read_img_file,[input_img,datatype],[fullarray,original_img,original_lab]) | |
check_button.click(check_file,[fullarray,outpath],result) | |
run_button.click(data_crop,[fullarray,cropsize,stride,clipmode,npatch,thresh],[cropdata,result]) | |
save_button.click(save_tile,[cropdata,outpath],result) | |
showtile.click(show_data,cropdata,[show_pathes,start]) | |
tilecheck.click(show_data,[cropdata,start,dstride],[show_pathes,start]) | |
bcheck_button.click(batch_check_file,[binput_img,bdatatype,boutpath],bresult) | |
brun_button.click(batch_clip_data,[binput_img,bdatatype,bcropsize,bstride,bclipmode,npatch,bthresh,boutpath],[boriginal_img,boriginal_lab,bresult],show_progress=True) | |
demo.queue() | |
demo.launch(debug=False,show_api=False,show_tips=False) | |