公式サイト
https://pypi.org/project/pipdeptree
インストール
py -m pip install pipdeptree
実行
pipdeptree
Since 2023/09/17
py -m pip install folium
import folium
軌跡(Trajectory)のマップを作成した例である。(GPSdata_plotmap/GPSdata_util)
map_index += 1
sw_first = True
# Read CSV File
with open(csv_file, mode='r', encoding='utf-8') as file1:
next(file1) # Skip Header Line
list_csv_file = file1.readlines()
# Plotting
for csv_record in list_csv_file:
list_line = csv_record.replace('"','').replace('\n','').split(',')
if (sw_first == True): # First Record Create folium.Map
# Define Map
folium_figure = folium.Figure() # Default height/width=100%
folium_map.append(folium.Map([list_line[2],list_line[3]],
zoom_start=zoom,control_scale=True).add_to(folium_figure))
sw_first = False
if (list_line[4] == 'Address Not Found'):
display_name = 'Not Found'
else:
display_name = list_line[6]
folium.Marker(location=[list_line[2], list_line[3]],
tooltip=list_line[1],
popup=display_name,
icon=folium.Icon(color="blue")).add_to(folium_map[map_index])
# Display Map (Brawser Dependency)
folium_map[map_index]
# Save HTML File
output_html_file = csv_file.replace('.csv','')+'_folium.html'
folium_map[map_index].save(output_html_file)
foliumでアニメーションを作成した例である。(GPSdata_MobileClip)
厳密なJSON形式の辞書型データを作成する必要がある。
# Set duration by Input Parm
if (map_selection == 'f'): duration = "PT"+str(interval//2)+"S"
else: duration = None
print('\nDataFrame info ---> ')
print(dataframe3.info())
list_unique_uid = pd.unique(dataframe3['uid']).tolist()
print('\nUnique uid Count ---> ', len(list_unique_uid))
dataframe3['datetime'] = \
dataframe3['datetime'].apply(lambda d: pd.Timestamp(d).isoformat(sep='T'))
list_uid = dataframe3['uid'].tolist()
list_lat = dataframe3['lat'].tolist()
list_lng = dataframe3['lng'].tolist()
list_datetime = dataframe3['datetime'].tolist()
#Generate GeoJSON Format
features = [
{
"type": "Feature",
"geometry": {
"type": "MultiPoint",
"coordinates": [[list_lng[i], list_lat[i]]],
},
"properties": {
"times": [datetime],
"popup": "time="+datetime+", uid="+list_uid[i]+", \
lng="+str(list_lng[i])+", lat="+str(list_lat[i]),
"icon": "circle",
"iconstyle": {
#"fillColor": "blue",
"fillColor": folium_colors[
list_unique_uid.index(list_uid[i]) % len(folium_colors)
],
"fillOpacity": opacity,
"stroke": "True",
"radius": weight,
},
},
}
for i, datetime in enumerate(list_datetime, 0)
]
map = folium.Map(
location=[list_lat[0], list_lng[0]],
tiles='OpenStreetMap',
attr='Folium TimestampedGeoJson by ' + os.path.basename(__file__) \
+ ' (Input=' + os.path.basename(input_csv_file) \
+ ', Interval=' + str(interval) + ', Zoom=' + str(zoom) + ')',
control_scale=True,
zoom_start=zoom
)
TimestampedGeoJson(
{
"type": "FeatureCollection",
"features": features,
},
transition_time=200,
loop=False,
auto_play=True,
add_last_point=True,
#period="PT1M",
period="PT"+str(interval)+"S",
#duration="PT1M",
duration=duration,
loop_button=True,
speed_slider=True,
).add_to(map)
#map # Map display does not work.
# Output HTML File (UnicodeEncodeError fixed by asksaveasfilename)
output_html = tkinter.filedialog.asksaveasfilename(
title='Select Output HTML File Name',
initialdir=os.path.dirname(input_csv_file),
initialfile='folium_animation.html',
filetypes=[('HTML','.html')])
map.save(output_html)
py -m pip install plotly==5.24.1
import plotly.express as px
軌跡(Trajectry)のマップを作成した例である。(GPSdata_plotmap/GPSdata_util)
zoom = 16.0 # Default Zoom Value
csv_file = 'currently processing csv file name'
# Read CSV File in DataFrame
df1 =pd.read_csv(csv_file)
df1.dropna(inplace=True, how='all')
fig = px.scatter_mapbox(
data_frame=df1,
lat="Lat",
lon="Lng",
hover_data=["DateTime","display_name"],
color="category",
size="StayTime",
size_max=100,
opacity=0.5,
zoom=zoom,
height=None,
width=None,
title='plotly Map of'+csv_file)
fig.update_layout(mapbox_style='open-street-map')
fig.update_layout(margin={"r": 0, "t": 0, "l": 0, "b": 0})
fig.update_layout(autosize=True)
fig.show()
# Output HTML File
output_html_file = csv_file.replace('.csv','')+'_plotly.html'
fig.write_html(output_html_file)
plotlyでアニメーションを作成した例である。(GPSdata_MobileClip)
print('\nStart func_mapplot_plotly()')
# dataframe1.dropna(inplace=True, how='all')
fig = px.scatter_mapbox(
data_frame=dataframe3,
animation_frame="datetime",
animation_group="uid",
lat="lat",
lon="lng",
hover_name="uid",
color="uid",
size="lat",
size_max=20,
opacity=opacity,
zoom=zoom,
height=None,
width=None,
title='Plotly Animation by ' + os.path.basename(__file__) \
+ ' (Input=' + os.path.basename(input_csv_file) \
+ ', Interval=' + str(interval) + ', Zoom=' + str(zoom) + ')'
)
fig.update_layout(mapbox_style='open-street-map')
fig.update_layout(margin={"r": 0, "t": 24, "l": 0, "b": 0})
fig.update_layout(autosize=True)
fig.show()
# Output HTML File (UnicodeEncodeError fixed by asksaveasfilename)
output_html = tkinter.filedialog.asksaveasfilename(
title='Select Output HTML File Name',
initialdir=os.path.dirname(input_csv_file),
initialfile='plotly_animation.html',
filetypes=[('HTML','.html')])
fig.write_html(output_html)
print('End func_mapplot_plotly()')
import sound.effects.echo
import sound.effects.surround
from sound.effects import *
from . import echo ←Current Packageからimport
from .. import formats ←Parent Packageからimport
from ..filters import equalizer ←Parent Packageのfiltersからimport
Mainプログラムにimportしたら、importされたプログラムが即実行される。
#Main Routine
print('Importings!')
import temp02 ←この時点で実行
print('terminated')
import tkinter.filedialog
input_file = tkinter.filedialog.askopenfilename(
title='Select Input File Name',
initialdir='c:/Users/m/Downloads',
filetypes=[('All','*')])
print('Inoput file is ---> ', input_file)
(Nuitkaは、アプリケーションにインポートするモジュールではないので、モジュールカテゴリーではなく単独のカテゴリーに分類した。)
モジュールのインストールは、通常のモジュールと同様にpipで行う。モジュールのインストールを参照する。
Nuitkaを使って、Pythonソースコードから.exe化する方法は以下の通り。
py -m nuitka --onefile --enable-plugin=tk-inter Source.py