a
    L9f                     @   sH   d dl Zd dlZd dlZd dlZd dlZ	d dl
mZ G dd deZdS )    N)HydraHeadAppc                   @   s   e Zd ZdddZdd ZdS )UberNYC c                 K   s   | j | || _d S N)__dict__updatetitle)selfr   kwargs r   E/Users/putuwistika/Documents/TRILAK/hydralit-example/apps/uber_app.py__init__   s    zUberNYC.__init__c                    s   t | j dd tjdd fdd}|d}dd	 }td
 tjddd td\}}|( td tddd}W d    n1 s0    Y  | td W d    n1 s0    Y  || j	j
|k }td\}}}	}
ddg}ddg}ddg}d}t|d t|d f}|@ td||d d f  |||d |d d  W d    n1 sv0    Y  |0 td! |||d |d | W d    n1 s0    Y  |	0 td" |||d |d | W d    n1 s0    Y  |
0 td# |||d |d | W d    n1 sH0    Y  || j	j
|k| j	j
|d k @  }tj| j	jd$d%d&d }ttd$|d'}td( td)||d d f  tjt|jd*d+jtjd,tjd-d.d/td0d1d2gd3jd4d5d6dd7 d S )8Nz	date/timezPhttp://s3-us-west-2.amazonaws.com/streamlit-demo-data/uber-raw-data-sep14.csv.gzT)persistc                    s<   t j | d}dd }|j|ddd t | |< |S )N)nrowsc                 S   s   t |  S r   )strlower)xr   r   r   <lambda>+       z0UberNYC.run.<locals>.load_data.<locals>.<lambda>columnsT)axisinplace)pdread_csvrenameto_datetime)r   data	lowercaseZDATA_URLZ	DATE_TIMEr   r   	load_data(   s
    zUberNYC.run.<locals>.load_datai c                 S   sD   t tjd|||ddtjd| ddgddd	d
gdddgd d S )Nzmapbox://styles/mapbox/light-v92   )latitude	longitudezoompitchZHexagonLayerlonlatd      r   i  T)r   get_positionradiusZelevation_scaleZelevation_rangepickableZextruded)	map_styleZinitial_view_statelayers)stwritepdkZDeckZLayer)r   r&   r%   r#   r   r   r   map4   s&    zUberNYC.run.<locals>.mapaB  Source for this great app is from the Streamlit gallery [NYC Uber Ridesharing Data](https://github.com/streamlit/demo-uber-nyc-pickups). An example of how easy it is to convert an existing application and use within a Hydralit multi-page application, see the secret saurce [here] (https://github.com/TangleSpace/hydralit).z<br><br>)unsafe_allow_html)      zNYC Uber Ridesharing DatazSelect hour of pickupr      a
  
            ##
            Examining how Uber pickups vary over time in New York City's and at its major regional airports.
            By sliding the slider on the left you can view different slices of time and explore different transportation trends.
            )r3      r6   r6   gQeD@gHzwRgQUD@g(rRgnZD@gd;OR   r&   r%   z***All New York City from %i:00 and %i:00**r6         z**La Guardia Airport**z**JFK Airport**z**Newark Airport**<   )r   r:   )binsrange)minutepickupsr   z9**Breakdown of rides per minute between %i:00 and %i:00**z
step-after)interpolatezminute:QF)nice)scalez	pickups:Qr=   r>   )r   ytooltipg      ?red)opacitycolor)use_container_width)printr   r.   cache	subheadermarkdownr   sliderr/   dthournpaverage	histogramr=   r   	DataFramer<   altair_chartaltChartZ	mark_areaencodeXScaleYZconfigure_mark)r	   r   r   r1   Zrow1_1Zrow1_2Zhour_selectedZrow2_1Zrow2_2Zrow2_3Zrow2_4Z
la_guardiaZjfkZnewarkZ
zoom_levelmidpointfilteredhistZ
chart_datar   r   r   run   sp    



,"6
6
6
6"

zUberNYC.runN)r   )__name__
__module____qualname__r   r]   r   r   r   r   r      s   
r   )	streamlitr.   pandasr   numpyrO   altairrT   Zpydeckr0   hydralitr   r   r   r   r   r   <module>   s   