師匠の散歩

師匠が歩く趣味の世界

師匠のperlの使い方2016

師匠の散歩における山行記録は、ヤマレコの内容をそのまま登録することを念頭においています。 登録作業が2重になるので、できるだけページ作成時間を短くできるよう、Perlを使ってページ作成しています。

全て自前パソコンでの動作確認しかしていませんので、WEBでPerlを実行されても動作不能(最悪動作異常)の場合があります。

環境

2016年夏4月での師匠の環境・ソフトを紹介します。(ダウンロードページは自分で見つけてください。)

PC
Windows7
Webサーバー
04WebServer
Perl
ActivePerl (5.20.1 at 2015/4/1)
モジュール: CGI / File / Jcode
エディタ
PerlEditor / Hetecre / TeraPad
画像
WindowsLive MicrosoftICE / F6Exif / リサイズ超簡単Pro! / 縮小専用。 / ペイント
ユーティリティ
お〜瑠璃ネーム / エクセル2010
転送
FFFTP / FastCopy

注意点

師匠はPerlを各種モジュールありきで動作するようにしています。

たとえば、makeMap2016.cgiというファイルをコピーして実行しても、Perlとしては動作しません。

必ず、モジュールファイルも一緒にコピー・設置してお使いください。

モジュールファイル
Calender.pm     年月日計算モジュール
Getpicsize.pm     画像サイズモジュール
Header.pm     ページレイアウトモジュール このモジュールが不可欠
Maplib.pm     地図関係モジュール

構成

HTML作成に必要不可欠なファイルを、で示します。

師匠の散歩のサイトマップではないのでご注意のほど。

grandmaster
Trackname.pm    山行の年月日、前後半をわける時刻、GPXファイル名の設定
style.css         共通のCSS
toppage.css       トップページのみで使うCSS
yamagyo3.csv     trek-mapフォルダに移動
 
perl
makeXMLsimple.cgi   GPXファイルの trkpt要素を1行に変換
mabikiGpx2.cgi       インターバル時間・距離で間引く
makeMap2015.cgi     Y1/Y2/G3/K2/K4/L 地図作成
makeGraphGD.cgi     CSVファイルからグラフ作成
makeGraphGD2.cgi     CSVファイルから簡易マップ作成
makeHtml2015.cgi     HTMLファイル作成
 
Calender.pm     年月日計算モジュール
Getpicsize.pm     画像サイズモジュール
Header.pm     ページレイアウトモジュール
Maplib.pm     地図関係モジュール
 
perlChecker.cgi Perl構文エラーチェック
 
makeCSV2MAP3.cgi     登った山一覧作成
makeKiryu100B.cgi 桐生百名山KML作成
makeGunma100.cgi ぐんま百名山KML生成 CSVをJavaScript読出しに変更したため、CGIは不要になった
makeMt100Sen.cgi  日本百名山KML作成
makeYamanashi.cgi 山梨百名山KML作成
makeTchigi100.cgi 栃木百名山KML作成
controlCsv4Kml.cgi 三角点KML作成 実行時間が1分ほどあるので注意
 
makeTenbou.cgi 山座同定した山頂マップ作成 KMLファイルはCSVファイルからエクセルで作成
 
sanpoyyyy              フォルダをあらかじめ作成しておく
├ index.html         手動で内容変更
└ yyyymmdd.html       makeHtml2015.cgiが自動作成する
 
yyyymmdd        フォルダをあらかじめ作成しておく
trackyyyymmdd.gpx       GPS機器から取り出したGPXファイルをいれておく、CGIファイルが変更して上書きする
├ trackyyyymmdd_org.gpx    大元のファイルを名称変更して保存したもの
├ trackyyyymmdd_mabiki.gpx  間引き前のGPXファイル
├ trackyyyymmdd.csv        GPXファイルを数値変換、時刻は+9JPNに変更
├ lineY1-yyyymmdd.html
├ lineY2-yyyymmdd.html
├ lineG3-yyyymmdd.html
lineK-yyyymmdd.html
├ dotY2-yyyymmdd.html
dotK-yyyymmdd.html
dotK-yyyymmdd.xml
├ lineL-yyyymmdd.html
├ graph0.png              距離・標高グラフ
├ graph1.png              距離・速度グラフ
├ graph2.png              時間・標高グラフ
├ graph0.png              時間・速度グラフ
├ graphMap.png            簡易マップ
├ hashTable.dat            makeHtml2015.cgiが生成・呼び出すハッシュデータ
├ track.kml                ルートのポリラインKML
├ photo.kml                写真のアイコンKML
track.xml                国土V4は使わない
photo.xml                国土V4は使わない
├ saveMapdata.dat    連想配列 %mapdataのハッシュデータ
├ saveIn.dat       連想配列 %inのハッシュデータ
└ savehash.csv    連想配列 %mapdataのcvsデータ
trek-map
makeYamagyoJS.html  山行一覧ページ
makeYamagyo.js      山行一覧ページを作成するJavaScript
yamagyo3.csv     山行一覧ページで使用するデータ 文字コードが utf8 でないと呼び出したとき文字化けする
Lbasemap.html      山行ページで呼び出すLeaflet地図
K4basemap2.html      山行ページで呼び出すOpenLayers地図
Kbasemap2.html
mountain3.csv      師匠の登ったピーク
parking3.csv       師匠の利用した駐車場
mountain2.kml     Lbasemap.htmlおよびK4basemap2.htmlから呼び出すKMLファイル
parking2.kml     Lbasemap.htmlおよびK4basemap2.htmlから呼び出すKMLファイル
mountain2.xml
parking2.xml
kMajorMt.csv      国土地理院の「日本の主な山」を師匠がCSV化したのの
kiryu100.csv       桐生地域百山を師匠が若干のアレンジをいれてCSV化したもの
gunma100.csv      ぐんま百名山を師匠がデータ追加してCSV化したもの
tochigi100.csv     栃木百名山を師匠がデータ追加してCSV化したもの
yamanashi100.csv   山梨百名山を師匠がデータ追加してCSV化したもの
shinsyu100.csv   信州百名山を師匠がデータ追加してCSV化したもの
kiryu_midori_envelope400.csv   桐生市とみどり市の境界データ
gunma-envelope1000.csv     群馬県の境界データ
tochigi-envelope1000.csv     栃木県の境界データ
yamanashi-envelope1000.csv   山梨県の境界データ
shinsyuenvelope1868.csv   長野県の境界データ
tenbou
index.html        山座同定一覧ページ
makeTenbou.js      一覧ページを作成するJavaScript
tenboulist.csv      一覧ページを作成するcsvデータ
makeTenbou.css      一覧ページから呼び出すCSS
nantaisan-20140322.jpg     山座同定した写真
nantaisan.kml     山座同定地図で呼び出すKMLファイル
 
csv
akagisan.csv  地図に掲載する地点データページ
├ nishihotaka.csv
├ ・・・
└ azumayasan.csv

ファイル関連性

物理位置とは別に、呼び出しページと関連ページで説明します。

HTML関連

山行一覧表示
trek-map/makeYamagyoJS.html
呼び出しファイル
yamagyo3.csv
trek-map/makeYamagyo.js
trek-map/makeYamagyo.css
山座同定一覧表示
tenbou/index.html
呼び出しファイル
tenbou/makeTenbou.js
tenbou/tenboulist.csv

Perl関係

最初に次の作業をおこないます。ここに書き込んだ年月日時刻と時刻を次のようにセットしたとしておきます。

Trackname.pmの編集
  1. 年月日:20150123
  2. 時刻:12:00
ファオルダの作成
sanpo2015/20150123
GPXファイルの名前変更と保存
sanpo2015/20150123/track20150123.gpx

各CGIからは師匠作成のパッケージファイルを呼び出していることがほとんどです。

山行終了で必ず実施するPerl
  1. GPXファイル:trkpt要素を1行に変更
    perl/makeXmlSimple.cgi
    呼び出しファイル
    sanpo2015/20150123/track20150123.gpx
    Trackname.pm
    生成ファイル
    sanpo2015/20150123/track20150123.gpx
    ssanpo2015/20150123/track20150123_org.gpx

  2. GPXファイル:データ間の時間と距離で間引き実施
    perl/MabikiGpx2.cgi
    呼び出しファイル
    sanpo2015/201510123/track20150123.gpx
    Trackname.pm
    生成ファイル
    sanpo2015/20150123/track20150123.gpx
    sanpo2015/20150123/track20150123_mabiki.gpx

  3. GPXファイルから各種地図を作成
    perl/makeMap2015.cgi perl/makeMap2016.cgi
    呼び出しファイル
    sanpo2015/20150123/track20150123.gpx
    Trackname.pm
    生成ファイル
    sanpo2015/20150123/track20150123.csv
    sanpo2015/20150123/dotY2-20150123.html
    sanpo2015/20150123/dotL-20150123.html
    sanpo2015/20150123/lineG3-20150123.htm
    sanpo2015/20150123/lineY1-20150123.htm
    sanpo2015/20150123/lineY2-20150123.htm
    sanpo2015/20150123/lineL-20100101.html

  4. CSVファイルから時刻・距離・標高・速度グラフ作成
    perl/makeGraphGD.cgi
    呼び出しファイル
    sanpo2015/20150123/track20150123.csv
    Trackname.pm
    生成ファイル
    sanpo2015/20150123/graph0.png
    sanpo2015/20150123/graph1.png
    sanpo2015/20150123/graph2.png
    sanpo2015/20150123/graph3.png

  5. CSVファイルから簡易マップ作成
    perl/makeGraphGD2.cgi
    呼び出しファイル
    sanpo2015/20150123/track20150123.csv
    Trackname.pm
    生成ファイル
    sanpo2015/20150123/graphMap.png

  6. 山行ページ作成
    perl/makeHtml2015.cgi perl/makeHtml2016.cgi
    呼び出しファイル
    sanpo2015/20150123/track20150123.csv
    Trackname.pm
    JPG写真
    生成ファイル
    sanpo2015/20150123.html
    sanpo2015/20150123/track.kml
    sanpo2015/20150123/photo.kml
    sanpo2015/20150123/saveIn.dat
    sanpo2015/20150123/saveMapdata.dat
    sanpo2015/20150123/hashTable.dat

  7. 師匠の登った山作成
    perl/makeCSV2MAP3.cgi
    呼び出しファイル
    trek-map/mountain3.csv
    trek-map/parking3.csv
    生成ファイル
    trek-map/mountain.kml / mountain2.kml
    trek-map/parking.kml / paring.kml
適宜実施するPerl
  1. 桐生地域百山の作成
    perl/makeKiryu100B.cgi
    呼び出しファイル
    trek-map/kiryu100.csv
    生成ファイル
    trek-map/tableKiryu100.html
    trek-map/kiryu100.kml
    trek-map/Y1Kiryu100_Basemap.html
    trek-map/Y2Kiryu100_Basemap.html
    trek-map/G3kiryu100_Basemap.html

  2. 展望KML作成
    perl/makeTenbou.cgi
    展望データ.csv
    呼び出しファイル
    tenbou/tenboulist.csv
    tenbou/csv/展望地データ.csvi
    生成ファイル
    tenbou/展望地.kml

一度作成したらめったに再作成しない

  1. 日本百名山の作成
    perl/makeMt100Sen.cgii
    呼び出しファイル
    trek-map/kMajorMt.csv
    生成ファイル
    trek-map/mt100Sen.kml
    trek-map/m123.html / m321.html / k123.htm / k321.html
    trek-map/mheight123.html / mheight321.html / kheight123.html / kheight321.html
    trek-map/mkana123.html / mkana321.html / kkana123.html / kkana321.html
    trek-map/mlat123.html / mlat321.html / lat123.html / klat321.html
    trek-map/mlng123.html / mlng321.html / klng123.html / klng321.html
    trek-map/kpref.html

  2. ぐんま百名山の作成
    perl/makeGumma.cgi
    呼び出しファイル
    trek-map/kiryu100.csv
    trek0map/L-100_Basemap.html
    生成ファイル
    trek-map/Y1-gunma100_Basemap.html
    trek-map/G3-gunma100_Basemap.html
    trek-map/gunma100.kml
    trek-map/gunmaenvelope.kml

  3. 栃木百名山の作成
    perl/makeTochigi100.cgi
    呼び出しファイル
    trek-map/tochigi100.csv
    trek0map/L-100_Basemap.html
    生成ファイル
    trek-map/Y1-tochigi100_Basemap.html
    trek-map/G3-tochigi100_Basemap.html
    trek-map/tochigi00.kml
    trek-map/tochigienvelope.kml

  4. 山梨百名山の作成
    perl/makeYamanashi100.cgi
    呼び出しファイル
    trek-map/yamanashii100.csv
    trek0map/L-100_Basemap.html
    生成ファイル
    trek-map/Y1-yamanashi100_Basemap.html
    trek-map/G3-,yamanashi100_Basemap.html
    trek-map/yamanashi00.kml
    trek-map/yamanashienvelope.kml

  5. 三角点の地図表示
    perl/controlCsv4Kml.cgi
    呼び出しファイル
    maps/FG-CSV-20140526/FG-JPS-01-GCP25000-20140401-00番号.csv
    生成ファイル
    /maps/kml/controlPoint番号その他.kml
    /maps/kml/controlPoint01.kml
    /maps/kml/controlPoint01a.kml
    /maps/kml/controlPoint01b.kml

Topに戻る // 前のページにもどる
Copyright(C) Grandmaster Since 2010 最終更新:2016/5/10