Files
remote-sensing/__pycache__/api_server.cpython-310.pyc
T

93 lines
12 KiB
Plaintext
Raw Normal View History

o
¦<<i_>ã@sbdZddlmZmZmZddlmZddlmZddl m
Z
m Z ddl m
Z
ddlmZmZddlZddlZddlZdd lmZdd
lmZddlZed d d
ZejedgddgdgdddddddddœaddddddddœaGddde
ƒZGddde
ƒZGddde
ƒZejde
dddƒZ e d¡d d!„ƒZ!ejd"ed#d$d%„ƒZ"e #d&¡d'ed(efd)d*„ƒZ$e #d+¡d,d-„ƒZ%e d.¡d/d0„ƒZ&e #d1¡d'ed(efd2d3„ƒZ'e d4¡d5d6„ƒZ(d'efd7d8„Z)d9e*fd:d;„Z+d9e*fd<d=„Z,d'efd>d?„Z-e.d@kr/e/dAƒe/dBƒe/dAƒe/dCƒe/dDƒe/dEƒe/dFƒe/dGƒe/dHƒej0edIdJdKdLdSdS)Mu}
API Server for Land Classification Model Training
Cho phép chá»n dữ liệu và cấu hình training qua giao diện web
é)ÚFastAPIÚBackgroundTasksÚ
HTTPException)ÚCORSMiddleware)Ú StaticFiles)Ú HTMLResponseÚ FileResponse)Ú BaseModel)ÚOptionalÚListN©Údatetime)ÚPathz Land Classification Training APIz1.0.0)ÚtitleÚversionÚ*T)Z
allow_originsZallow_credentialsZ
allow_methodsZ
allow_headersFÚ)Ú is_trainingÚprogressÚerrorÚresultÚ
start_timeÚend_timeÚcancel_requested©Ú
is_predictingrrrÚ output_filerrc@eZdZUdZdZeed<dZeed<dZeed<dZ eed <d
Z
e ed <d Z e ed
<dZ
eed<dZeed<dZeed<dZeed<dZeed<dZeed<dZeed<dZe ed<dS)ÚTrainingConfiguCấu hình trainingçffffffZ@Úmin_lonçš™™™™™"@Úmin_latçÍÌÌÌÌŒZ@Úmax_lonçš™™™™™#@Úmax_latú
2023-03-01Ú
start_dateú
2023-05-31Úend_dateé Ú
max_sceneséÚ cloud_coveréÚ
resolutionédÚ n_estimatorsÚ max_depthgš™™™™™¹?Ú
learning_rateTÚuse_gpuz1train/ST_training data_updated_1130points_new.shpÚtraining_shapefileN)Ú__name__Ú
__module__Ú __qualname__Ú__doc__rÚfloatÚ__annotations__r!r#r%r'Ústrr)r+Úintr-r/r1r2r3r4Úboolr5©r?r?ú1/home/x79/CSIROBoeingPhase5-Vietnam/api_server.pyr5s
             rc@s†eZdZUdZeed<dZeed<dZeed<dZ eed<d Z
eed
<d Z eed <d
Z eed<dZ
eed<dZeed<dZeed<dS)ÚPredictionConfiguCấu hình dá»± Ä‘oánÚmodel_filenamerrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/N)r6r7r8r9r<r;rr:r!r#r%r'r)r+r=r-r/r?r?r?r@rAPs
        rAc@sReZdZUdZeed<eed<eeed<eeed<eeed<eeed<dS) ÚTrainingStatusuTrạng thái trainingrrrrrrN) r6r7r8r9r>r;r<r
Údictr?r?r?r@rCes
   rCú/)Zresponse_classcÃs(ttƒjd}| ¡rt|ƒStdƒS)uServe giao diện webztraining_interface.htmluV
<html>
<head><title>Training Interface</title></head>
<body>
<h1>Land Classification Training API</h1>
<p>API Documentation: <a href="/docs">/docs</a></p>
<p>Training Interface: Tạo file training_interface.html</p>
</body>
</html>
)rÚ__file__ÚparentÚexistsrr)Z html_filer?r?r@Úrootos
rIz/api/config/presetscÃs^ddddddddd d
d d œ d
œdddddddd
d
dd œ d
œddddddddddd œ d
œgiS)u#Lấy các preset cấu hình sẵnZpresetsu%PC - Nhá» (3 tháng, 20m, 12 scenes)rr r"r$r&r(r*r,r.) rr!r#r%r'r)r+r-r/)ÚnameÚconfigu/Server - Trung bình (6 tháng, 10m, 30 scenes)g`Z@gffffff"@gš™™™™™Z@g$@z
2023-01-01z
2023-06-30é
u%Full - Lớn (1 năm, 10m, 60 scenes)z
2022-09-01z
2023-10-01é<é2r?r?r?r?r@Ú get_presetss,ýþ ýþ ýþïÿrOz/api/training/status)Zresponse_modelcÃótS)u!Kiểm tra trạng thái training©Útraining_statusr?r?r?r@Úget_training_status£órSz/api/training/startrKÚbackground_taskscÃsFtdr tdddddddt ¡ ¡ddœa| t|¡d td
œS) u.Bắt đầu training vá»›i config đã chá»nréu'Training Ä‘ang chạy, vui lòng đợi©Ú status_codeZdetailTuÄang khởi tạo...N)rrrrrruTraining đã bắt đầu©ÚmessageÚstatus)rRrr
ÚnowÚ isoformatÚadd_taskÚ run_training©rKrUr?r?r@Ústart_training©s 
ú
raz/api/training/stopcÃs*tds ddiSdtd<dtd<ddiS) u$Dừng training (nếu Ä‘ang chạy)rrZu%Không có training nào Ä‘ang chạyTruÄang há»§y training...ruÄang dừng training...rQr?r?r?r@Ú
stop_trainingÁs rbz/api/models/listc Ãtdƒ}| ¡s
dgiSg}| d¡D]C}| d¡}i}| ¡r:t|ƒ
}t |¡}Wdƒn1s5wY| |jt  
|  ¡j ¡ 
¡t|  ¡jdddƒ|dœ¡q|jd d
d d d|iS)
u Liệt kê các model đã trainÚ model_trainÚmodelsz*.joblibz.jsonNié)ÚfilenameÚcreatedZsize_mbÚinfocSs|dS)Nrgr?)Úxr?r?r@Ú<lambda>çózlist_models.<locals>.<lambda>T)ÚkeyÚreverse)rrHÚglobÚ with_suffixÚopenÚjsonÚloadÚappendrJr
Ú
fromtimestampÚstatÚst_mtimer]ÚroundÚst_sizeÚsort)Z model_dirrdZ
model_fileZ info_filerhÚfr?r?r@Ú list_modelsÐs(

 ÿ
ür{z/api/prediction/startcÃsHtdr tddddddddt ¡ ¡ddœa| t|¡d td
œS) uBắt đầu dá»± Ä‘oánrrVu(Äang có dá»± Ä‘oán khác Ä‘ang chạyrWTuÄang khởi động...NruÄã bắt đầu dá»± Ä‘oánrY)Úprediction_statusrr
r\r]r^Úrun_predictionr`r?r?r@Ústart_predictionës 
ù
r~z/api/prediction/statuscÃrP)u$Kiểm tra trạng thái dá»± Ä‘oán)r|r?r?r?r@Úget_prediction_statusrTrcÃsFzidtd<dtd<ddlm}dtd<dd „}||j|j|j|jg|jd
|j|j |j
|j |j |j
|j|j|jd d |d
}t dd¡rTdtd<dtd<dtd<n dtd<dtd<|td<t ¡ ¡td<WdSt}z,dtd<t|ƒtd<dt|ƒtd<t ¡ ¡td<ddl}t| ¡ƒWYd}~dSd}~ww)uChạy training processFrõÄang import thư viện...rr)Ú train_modelu$Äang load dữ liệu Sentinel-2...cSs t dd¡S)NrF)rRÚgetr?r?r?r@Ú
should_cancels z#run_training.<locals>.should_cancelrEcSst|ƒS)N)Úupdate_progress)Úmsgr?r?r@rj'rkzrun_training.<locals>.<lambda>) ÚbboxÚ
time_ranger+r-r/r5r1r2r3r4Zstatus_callbackZ cancel_checkruÄã há»§y trainingzTraining cancelled by userrõ
Hoàn thành!rrõLá»—i: N)rRZ train_modulerrr!r#r%r'r)r+r-r/r5r1r2r3r4rr
r\r]Ú Exceptionr<Ú tracebackÚprintÚ
format_exc)rKrrÚerr?r?r@r_
sL ô