Closed Kanahiro closed 4 months ago
[!IMPORTANT]
Auto Review Skipped
Review was skipped due to path filters
Files ignored due to path filters (2)
* `poetry.lock` is excluded by `!**/*.lock`, `!**/*.lock` * `pyproject.toml` is excluded by `!**/*.toml`You can disable this status message by setting the
reviews.review_status
tofalse
in the CodeRabbit configuration file.
プロジェクト全体の変更は、GTFS
クラスをGTFSFactory
に改名し、データフレームの取り扱いを強化しました。これにより、地理データ処理が向上し、新しいテスト機能が追加されました。
ファイル | 変更内容 |
---|---|
.../__main__.py |
GTFS クラスをGTFSFactory に改名。インスタンス作成方法変更。 |
.../aggregate.py |
GTFS のインポートパスを修正。 |
.../gtfs.py |
GTFS クラスをGTFSFactory に改名、データ型の変更、新しいデータロード方法の導入。 |
.../parse.py |
GTFS のインポートパスを修正、新しいライブラリのインポート。 |
tests/test_parser.py |
新しいテスト関数の追加。 |
🐰✨
変更の風、新たな道
コードの森を駆け巡る
データの海、広がりを知る
テストの光、確かな足跡を残す
うさぎも跳ねる、新しい春🌸
🌟📊
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Attention: Patch coverage is 84.00000%
with 12 lines
in your changes are missing coverage. Please review.
Project coverage is 81.35%. Comparing base (
c7ac530
) to head (123c0dd
). Report is 1 commits behind head on main.
Files | Patch % | Lines |
---|---|---|
gtfs_parser/parse.py | 80.48% | 8 Missing :warning: |
gtfs_parser/gtfs.py | 86.66% | 4 Missing :warning: |
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
いただいたロジック、確かに速いのでdissolve使わない方針にしていきます。 ただ、見た目が直感的でなくて、処理が正しいかちょっと判断つかなかったです。shapesを見ると、なんとなくdissolveでやってる結果は直感的に合ってそうに見えるのですが、「停車パターン」を全て考慮するといただいたロジックの結果になるとしたら、(dissolveの結果が)間違っていることになりそうです。
@Kanahiro
手元では、tuppleを使った処理で問題無く出力されています。
見た感じ、ソートがおかしい気がします。
sorted_stop_times = gtfs.stop_times.sort_values(["trip_id", "stop_sequence"])
の処理が抜けていたりしませんか?
参考に、手元のparse.pyを添付します。(.pyを添付できなかったので、拡張子をtxtにしています) parse.py.txt
すぐに解決しなさそうだったので、単にdissolveを使わない実装にしました。 改善の余地があれば、別のコミットで、ということで
QGISだとエラーになるコードがあるので調査中
おそらくGeoPandasじゃなくてshapely側の問題
たぶんgroupbyで各行のpointの配列は、ndarrayになるはず しかしQGISに入っているバージョンのshapelyはlistを食わせなければならない、ということで.tolist()を使う
QGISで動作はOK ただしMacbook Air M2 で動作させていると、信じられないくらい遅い amd/armの差を吸収する何かが原因な気が、する
Shapelyは内部的にGEOSに依存していて、それが遅いのではないだろうか
Windowsだと正常な速度(都営バス、no-shapes, 10秒程度)で処理が完了したので、macOSだけが異常に遅くなるようだ
(なんとgeopandas無しの方が速い)
Close #0
Description(変更内容)
Manual Testing(手動テスト)
Not required / 不要