Improving the efficiency of the work of reading coordinates from artifact distribution maps
We are currently working on reading coordinates from artifact distribution maps (paper images) of the shell layer on the north slope of the Ariyoshi Kita Shell Mound. It is tiresomely tedious. We took notes on the work process and considered ways to make it more efficient.
有吉北貝塚北斜面貝層の遺物分布図(紙画像)から座標読取作業を行っています。うんざりするほど煩雑です。その作業工程をメモして、効率化について検討しました。
1 座標読取作業工程詳細
有吉北貝塚北斜面貝層の遺物分布図(紙画像)からの座標読取作業工程詳細を次のメモしました。
……………………………………………………………………
1 フォルダー作成
座標を読みとり、その情報をデータベースとリンクするための作業を行うグリッド別フォルダー、サブフォルダーをエクスプローラに作成します。
例 グリッド別フォルダー
118、119、128、129、…
例 サブフォルダー
1xy読取、2kado付与、3差し替え座標、4dbにリレーション、5プロット用
2 1xy読取フォルダーにおける作業
2-1 ファイルコピー
読取に使う画像や読取ツールをフォルダーにコピーします。
・遺物分布図画像
・このフォルダーでの作業(テキスト)
・Pythonスクリプト(1m用.py)
2-2 作業に必要な情報作成
4分割図座標表示画像等を作成します。
・当該グリッド位置図(画像とIllustratorファイル)
・当該グリッド4分割図の座標(画像とIllustratorファイル)
2-3 遺物分布図4分割作業
遺物分布図の当該グリッド部分を4分割し、それぞれファイルとします。
2-4 4分割図別座標読取
Pythonスクリプト(1m用.py)を使って、4分割図別座標読取作業を行い、読取結果csvファイルと読取結果画像(チェック用)を生成します。
3 2kado付与フォルダーにおける作業
3-1 ツール等ファイルのコピー
・このフォルダーでの作業(テキスト)
・Pythonスクリプト(add_kado.py、このフォルダー内csvファイル結合.py)
3-2 読取結果csvファイルにkado値を付与し結合
4分割座標読取結果csvファイルにPythonスクリプト(add_kado.py)でkado値を与え、それらのファイルをPythonスクリプトで一つに結合します。
4 3差し替え座標フォルダーにおける作業
4-1 ツール等ファイルのコピー
・このフォルダーでの作業(テキスト)
・Pythonスクリプト(XY差替kado補正コード.py、重複確認別バージョン.py)
4-2 コード・座標値Excelファイル作成
Pythonスクリプト(XY座標kado補正コード.py)で座標差し替え、座標係数付加等の複雑な作業を行い、所望するコードと座標値のExcelファイルを作成します。
コードの重複をPythonスクリプトで除去する。
5 4dbにリレーションフォルダーにおける作業
5-1 ツール等ファイルのコピー
・このフォルダーでの作業(テキスト)
・グリッドのデータを検索するpostgreSQLスクリプト(テキスト)
・Pythonスクリプト(コードでリレーション.py、utf8-shiftjis変換Excel.py)
5-2 グリッド別の遺物台帳データベースファイル取得・調整
遺物台帳データベース(postgreSQL)からクエリで当該グリッド分のデータベースファイルをcsvファイルとしてアウトプットします。
Pythonスクリプト(utf8-shiftjis変換Excel.py)を使って、データベースファイルの日本語コードをshiftjisに変換してExcelファイルに書き出します。
5-3 遺物分布図由来データと遺物台帳由来データの結合
Pythonスクリプト(コードでリレーション.py)で遺物台帳(postgreSQL)由来データベースファイルと遺物分布図座標読取ファイルをファイル結合します。このファイルはグリッド別であるが、XYZ座標が掲載されたデータベースとしての最終成果です。
6 5プロット用フォルダーにおける作業
6-1 ツール等ファイルのコピー
・このフォルダーで行う作業(テキスト)
・Pythonスクリプト(プロット可能デベ.py)
・BlenderPythonスクリプト(コード記入する座標プロット.py)
6-2 XYZ座標が揃ったデータ抽出
3D空間表示のためのXYZ座標が揃ったデータをPythonスクリプト(プロット可能デベ.py)で抽出します。
6-3 3Dモデル表示
BlenderPythonスクリプト(コード記入する座標プロット.py)でデータをBlender3Dビューポートに表示します。
……………………………………………………………………
2 メモ
2-1 工程が煩雑な理由
工程が煩雑な理由は主に次の2つの要因が関係しています。
・北斜面貝層グリッド座標設定と一般3D空間座標の難調和性
・遺物分布図の文字の小ささ(手書き文字が小さいため、画像を4分割して拡大表示して扱わざるを得ない)(=原図がB3と大きいこと)。
2-2 これまでに工夫した効率化
2-2-1 Pythonによる座標読取ツール自作活用
Pythonにより座標読取ツールを自作し活用しています。
・1m用.py
座標読取ツールの様子
2-2-2 Pythonによるcsv・Excelファイル操作の自動化
次のPythonスクリプトによりcsv・Excelファイル操作の自動化を進めました。これにより、Excel画面で列挿入削除とか数値入力コピー・計算とかの通常作業はほぼゼロとなりました。
・add_kado.py
・このフォルダー内csvファイル結合.py
・XY差替kado補正コード.py
・重複確認別バージョン.py
・コードでリレーション.py
・utf8-shiftjis変換Excel.py
・プロット可能デベ.py
・コード記入する座標プロット.py
2-2-3 「このフォルダーで行う作業」(メモ)の全フォルダー掲載
煩雑な作業のどの部分を現在作業しているのか、いつでも確認できるようにメモ文を全てのフォルダーに掲載しました。
2-2-4 作業工程の見直し
グリッド毎に順を追って作業すると、体調によっては、煩雑な工程の中で迷ったり、作業意欲を集中できなくなることがあります。そこでグリッド単位の作業ではなく、工程単位の作業としました。つまり、ある工程について、多数のグリッドの作業を一括して行います。この工程の方が、同じ作業になるので、煩雑さが軽減して、機械的作業になり、楽です。体調が万全でなくても、作業を継続できます。
2-3 効率化に関する今後の改善策
2-3-1 Pythonスクリプトの改善
Pythonスクリプトの中には、操作するファイルの名称をaaa.csvなど汎用名称にして扱うものがありますが、GUI選択できるように改善します。
2-3-2 作業習熟による効率化
時々行う作業ではいつでも同じような心理抵抗が生まれますが、作業を継続して行うことにより作業に習熟すれば、心理抵抗が軽減し、おのずと効率性が増すと考えます。
2-3-3 作業工程の再度見直し
現在は工程単位作業(フォルダー単位作業)をしていますが、複数工程のPythonによる一括処理などが可能であるか、検討します。