
    Lea                     f    d dl Zd dlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ  G d	 d
e	          ZdS )    N)Image   )VersionError)Tiles   )ElementPlot)PlotlyOverlaySelectionDisplayc                   @    e Zd ZdgZdZ e            ZdZddZd	dZ	dS )
RGBPlotopacityTr   Fc                 (   |r8t          |fi |}dd gd gddd}t          t          |g          |g          S t          |fi |}d|d         |d         |d	         z   g|d
         |d         z
  |d
         gdddidd}t          |g|g          S )NscattermapboxmarkersF)typelatlonmode
showlegend)layers)mapboxtracesscatterxsizexysizeyr   r   )r   r   r   r   markerr   )imagesr   )dict)	selfdatumoptionsindexis_geokwargslayerdummy_traceimages	            @lib/python3.11/site-packages/holoviews/plotting/plotly/images.py
init_graphzRGBPlot.init_graph   s     	.**'**E'vv!# K tE7333 +}. . . . **'**E "Cj%*uW~"=>Cj5>15:>!$a.# K w +}. . . .    c                    	 dd l }n# t          $ r t          d          w xY wt          j        t          j        fdj        D                       d          }|j        j        dk    r|dz  }|j	        r`|
                                dk     s|                                dk    r0| j                            d           t          j        |dd          }|j        j        dk    r|                    t          j                  }d|j        v r t          j        d	t          j        
          }|j        dk    s|j        d         dvrt+          d|j                   j                                        \  }}	}
}| j        r4t          j        |                    dd          d          }|	|||
f\  }}	}
}| j        r|
|}
}t          j        |d          }| j        rt          j        |d          }||	}}	|j        d         dk    r|j                            |d          }n|j                            |d          }t?          |          j         }|rHtC          j"        ||          \  }}tC          j"        |
|	          \  }}||g||g||g||gg}d||dd}|gS tG          ||||
|z
  ||	z
  dddd	  	        gS )Nr   zJRendering RGB elements with the plotly backend requires the Pillow packagec                 >    g | ]}                     |d           S )F)flat)dimension_values).0delements     r)   
<listcomp>z$RGBPlot.get_data.<locals>.<listcomp>=   s<     / / / ///>> / / /r+   )axisf   zaClipping input data to the valid range for RGB data ([0..1] for floats or [0..255] for integers).uint8)r   r   r   )dtyper      )r      z$Unsupported image array with shape: r   RGBRGBA)sourcer(   r   )
sourcetyper=   coordinatesbelowr   r   stretchabove)	r=   r   r   r   r   xrefyrefsizingr&   )$	PIL.ImageImportErrorr   npflipdstackvdimsr8   kindsizeminmaxparamwarningclipnameastyper7   shapezerosndim
ValueErrorboundslbrtinvert_axesrot90swapaxesinvert_xaxisinvert_yaxisr   	fromarray_Imager=   r   easting_northing_to_lon_latr   )r    r2   rangesstyler$   r%   PILimglbrtpil_imgr=   lon_leftlat_top	lon_right
lat_bottomr?   r&   s    `                  r)   get_datazRGBPlot.get_data5   sU   	O 	O 	O 	O  N O O O	O gI / / / / '/ / / 0 0
 
 
 9>S  )C8 	'Q#''))c//J  C D D D '#q#&&C9>W$$**RX&&C	>>(9BH555C8q==CIaL66OCIOOPPP ^((**
1a 	$(3<<1--q11CAq!JAq!Q 	'aqA'#A&&&C 	'#A&&&CaqA9Q<1i))#u55GGi))#v66Gw'''. 	) % A!Q G GHg$)$Ea$K$K!Iz7#G$J':&	K & *!	 E 7N 1u 1u!! )&( ( ( ) )s    "N)r   F)F)
__name__
__module____qualname__
style_optsapply_rangesr	   selection_display_supports_geor*   rp    r+   r)   r   r   
   sc        JL5577M. . . .BJ) J) J) J) J) J)r+   r   )numpyrH   plotly.graph_objs.layoutr   ra   	core.utilr   r2   r   r   	selectionr	   r   rx   r+   r)   <module>r}      s        4 4 4 4 4 4 % % % % % %                   4 4 4 4 4 4u) u) u) u) u)k u) u) u) u) u)r+   