U
    Ú£„gW@  ã                   @   s  d dl mZmZmZmZmZmZmZmZ d dl mZ d dl mZ d dl	m
Z
 d dlmZ d dlZd dlmZ d dlmZ d dlZd dlZd d	lmZ d d
lmZ d dlmZmZ d dlZd dlmZ d dlmZ d dlmZ d dlZd dlZd dlZd dlZd dl Z!dd„ Z"dS )é    )ÚWebFeatureServiceÚBBoxÚCRSÚMimeTyper   r   Ú
WmsRequestÚDataCollection)Úget_area_info)ÚSHConfig)Úoctave)ÚBytesION)Ústorage)ÚServiceAccountCredentials)Úcredentials)Údb)ÚImageÚImageFilter)Úsend_notification)Ú	sendemail)Úsen_start_notic           a   
   C   sú  d}t  d¡}|d d d }|d d d }|d }|d }|d	 }|d
 }|d }||k rj|}|}|}||k r~|}|}|}|}|}|}|}d}d}tƒ }|	r¶|
r¶|	|_|
|_||_t||||gtjd}t	j	 
¡ }|j}|j} |j}!|!}!|!}!| }"|!dk r:|dkr:|dkr d|! d }#nd|! d }#|d }$| }"nj|!dk r€|dkr€|dkrfd|! d }#nd|! d }#d}$|"d }"n$|dkr”|!d }#n|!d }#|}$| }"|#dkr²d}#|!dkrÀd}!|dk rØdt|ƒ }nt|ƒ}|$dk rødt|$ƒ }$nt|$ƒ}$|!dk rdt|!ƒ }!nt|!ƒ}!|#dk r8dt|#ƒ }#nt|#ƒ}#t|"ƒ}"|d kr¬|"d |$ d t|#ƒ }t| ƒd | d t|!ƒ }t| ƒ| t|!ƒ }%|d }|d }nt| ƒ| t|!ƒ }%d}&tt|| d d d ƒƒ}'|'dkrðd}'n|'dk rþd}'||f}(d}&d})d}&zt||(tjd|d}*W n( tk
rR }+ zd}&W 5 d }+~+X Y nX |* ¡ },d}&d }-|*D 	]}.d}&tdƒ t|.ƒ |.}/|/d  }0|0d! }1|1d d }2d}3t|2ƒ}4d}5g }6g }7g }8g }9g }:|2D ]º};|2|5 }<|<d }=|: |=¡ |5d"k r|<d }=|6 |=¡ n&|5dkr,|5d#k r,|<d }=|7 |=¡ |5dks@|5d$krT|<d }>|8 |>¡ n&|5dksh|5d"krz|<d }>|9 |>¡ |5d }5qÊ|: ¡  t |:¡}:g }6g }7|6 |:d ¡ |6 |:d ¡ |7 |:t|:ƒd"  ¡ |7 |:t|:ƒd  ¡ t|6ƒ}?t|7ƒ}@t|7ƒ}At|8ƒ}Bt|9ƒ}C|A|krh|.d% d& }Di }E|2d }F|Fd }G|Fd }H|2d }I|Id }J|Id }K|2d" }L|Ld }M|Ld }N|2d$ }O|Od }P|Od }Q|G|Ed'< |H|Ed(< |J|Ed)< |K|Ed*< |M|Ed+< |N|Ed,< |P|Ed-< |Q|Ed.< |B|Ed/< |C|Ed0< |?|Ed1< |@|Ed2< ||Ed< ||Ed< ||Ed	< ||Ed
< ||Ed< | |Ed3< |.d% d4 |Ed5< |,d \}R}S}T|R|Ed6< |S}U|S dd7¡}S|.d% d8 }-|-dd… }-|- dd7¡}-|-|Ed9< d:d;d<d=d>d?d@g}VdAdBdCdDg}WdE}Xd}Yd}Zt|-ƒt|ƒkr~t|-ƒt|ƒkr~|dkr~|dkr~d}&t tjdF||(|'|dG}[|[ !¡ }\| dH | dI }]t"j# $|\dJ ¡}^|^ %dK¡}^t&j' (| ¡}_|_dLkrJt& )| ¡ |^ *|]¡ t tjdM||(|'|dG}[|[ !¡ }\| dH | dN }]t"j# $|\dJ dK¡}^t&j' (| ¡}_|_dLkr´t& )| ¡ |^ *|]¡ t tjdO||(|'|dG}[|[ !¡ }\| dH | dP }]z t"j# $|\dJ dK¡}^|^ %dQ¡}^W n   t"j# $|\dJ dQ¡}^Y nX t&j' (| ¡}_|_dLkrLt& )| ¡ |^ *|]¡ t tj+d:||(|'|dG}[|[ !¡ }\| dH | dR }]zt"j# $|\dJ dQ¡}^W n(   t"j# $|\dJ dK¡}^|^ %dQ¡}^Y nX t&j' (| ¡}_|_dLkrät& )| ¡ |^ *|]¡ t tjd;||(|'|dG}[|[ !¡ }\| dH | dS }]zt"j# $|\dJ dQ¡}^W n(   t"j# $|\dJ dK¡}^|^ %dQ¡}^Y nX t&j' (| ¡}_|_dLk	r|t& )| ¡ |^ *|]¡ t tjd<||(|'|dG}[|[ !¡ }\| dH | dT }]zt"j# $|\dJ dQ¡}^W n(   t"j# $|\dJ dK¡}^|^ %dQ¡}^Y nX t&j' (| ¡}_|_dLk
rt& )| ¡ |^ *|]¡ t tjd=||(|'|dG}[|[ !¡ }\| dH | dU }]zt"j# $|\dJ dQ¡}^W n(   t"j# $|\dJ dK¡}^|^ %dQ¡}^Y nX t&j' (| ¡}_|_dLk
r¬t& )| ¡ |^ *|]¡ t tjd>||(|'|dG}[|[ !¡ }\| dH | dV }]zt"j# $|\dJ dQ¡}^W n(   t"j# $|\dJ dK¡}^|^ %dQ¡}^Y nX t&j' (| ¡}_|_dLkrDt& )| ¡ |^ *|]¡ t tjd?||(|'|dG}[|[ !¡ }\| dH | dW }]zt"j# $|\dJ dQ¡}^W n(   t"j# $|\dJ dK¡}^|^ %dQ¡}^Y nX t&j' (| ¡}_|_dLkrÜt& )| ¡ |^ *|]¡ t tjd@||(|'|dG}[|[ !¡ }\| dH | dX }]zt"j# $|\dJ dQ¡}^W n(   t"j# $|\dJ dK¡}^|^ %dQ¡}^Y nX t&j' (| ¡}_|_dLkrtt& )| ¡ |^ *|]¡ |E  S qhi }EdY|Ed/< dY|Ed0< dY|Ed1< dY|Ed2< ||Ed< ||Ed< ||Ed	< ||Ed
< ||Ed< | |Ed3< |-|Ed9< dZ|Ed6< dY|Ed5< |ES )]Né   zservicekey2.jsonÚCoordinatesÚaÚLatitudeÚ	LongitudeÚFieldMaxLatÚFieldMinLatÚFieldMaxLongÚFieldMinLongÚ	FieldAreaÚAKIAIPCM5ZR7FRHMY3MAÚ(NqRPjJwlU3CkmuusSQxaSCuohz6WrFkxcDztC46n)ÚbboxÚcrsé   r   é   é   é   é
   Ú0Ú-z	T00:00:00z	T23:59:59éo   iè  iL  éd   g      Y@)Údata_collectionÚmaxccÚconfigz	tile infoÚgeometryÚcoordinatesé   é   é   Ú
propertiesÚidÚA_latÚA_longÚB_latÚB_longÚC_latÚC_longÚD_latÚD_longÚ
TileMaxLatÚ
TileMinLatÚTileMaxLongÚTileMinLongÚUIDZcloudCoverPercentageÚcloud_coverÚMGRSÚ ÚdateÚ	LatestDayZB02ZB03ZB04ZB05ZB08ZB11ZB12ZtileInfoÚpreviewzqi/MSK_CLOUDS_B00ÚTCIz	./AwsDatazTRUE-COLOR-S2L2A©r,   Úlayerr!   ÚtimeÚwidthr.   ú/z/TCI.pngéÿÿÿÿÚRGBTZEVAPOTRANSPIRATIONz
/evapo.pngZLAIz/lai.pngÚLz/B02.pngz/B03.pngz/B04.pngz/B05.pngz/B08.pngz/B11.pngz/B12.pngÚNAÚNotAc                 S   sn   d}t || |d||d}| ¡ }|d |  d }	tj |d d¡}
tj |¡}|dkr`t |¡ |
 	|	¡ d S )	Nr   ÚlatestrJ   rN   z.pngrO   rQ   T)
r   Úget_dataÚPILr   Ú	fromarrayÚosÚpathÚisdirÚmkdirÚsave)Z	layerNameÚsearch_bboxÚ	img_widthr.   ÚuidZdataSetÚwes1Ú
s1_requestÚs1_dataÚ	file_nameÚimrZ   © re   ú3/home/ankuromar296_gmail_com/search_new_sentinel.pyÚgetLayerÅ  s    
z%search_new_sentinel.<locals>.getLayer),r   ÚCertificater	   Úsh_client_idÚsh_client_secretÚinstance_idr   r   ÚWGS84ÚdatetimeÚnowÚmonthÚyearÚdayÚstrÚabsÚroundr   r   ZSENTINEL2_L1CÚ	ExceptionZ	get_tilesÚprintÚlenÚappendÚsortÚnpÚuniqueÚminÚmaxÚreplaceÚintr   rU   rV   r   rW   ÚconvertrX   rY   rZ   r[   r\   ZSENTINEL2_L2A)ar_   ÚfieldidÚ
map_fieldsÚlatestsenseddayÚlatestfaileddayÚexpiredÚpausedÚ	from_dateÚto_dateÚ	CLIENT_IDÚCLIENT_SECRETÚINSTANCE_IDÚaaÚcredÚfield_latitudeÚfield_longitudeÚfield_max_latÚfield_min_latÚfield_max_longÚfield_min_longÚ
field_areaÚtempÚmin_latÚmax_latÚmin_longÚmax_longÚ
access_keyÚ
secret_keyr.   r]   ÚxÚcurrent_monthÚcurrent_yearÚcurrent_dateÚ
start_yearÚ
start_dateÚstart_monthÚl_dater`   r^   Úsearch_time_intervalÚtile_numÚwfs_iteratorÚeZ	sat_tilesÚlatest_dateÚ	tile_infoÚ	temp_tileÚgeomÚcoordsÚ
new_coordsÚ	coord_numÚ	coord_lenÚ
coord_iterÚ	west_lonsÚ	east_lonsÚ
north_latsÚ
south_latsÚall_lonsÚkkÚlatlngÚ	longitudeÚlatitudeÚwest_lonÚeast_lonÚmin_east_lonÚ	north_latÚ	south_latÚtile_idÚtemp_map_objÚAr6   r7   ÚBr8   r9   ÚCr:   r;   ÚDr<   r=   Z	tile_namerL   Z	aws_indexZnew_timeÚbandsZ	metafilesZdata_folderÚarÚbrra   rb   rc   rd   rZ   rg   re   re   rf   Úsearch_new_sentinel   s~   























8	






























rÈ   )#Úsentinelhubr   r   r   r   r   r   r   r	   Úoct2pyr
   Úior   Úbase64Úgoogle.cloudr   Úoauth2client.service_accountr   rX   Úfirebase_adminr   r   rV   r   r   r   r   r   ÚjsonÚscipyrm   rL   Únumpyrz   rÈ   re   re   re   rf   Ú<module>   s,   (