A bizarre QGIS phenomenon where errors and a bug (or feature?) combined to yield the correct result
I used Python to extract the orientation angles of shell displacements from images of a stripped cross-section and displayed them in QGIS. Visually, the display appeared correct. However, I later realized that I had made a mistake due to a misunderstanding during data processing, but that error was cancelled out by an unexpected QGIS bug (or feature?), resulting in the correct outcome. For me, it was a truly mysterious phenomenon.
剥取断面の貝殻偏位角の方向を画像からPythonで読取り、それをQGIS画面で表示しました。見た目正しく表示されています。しかし、データ処理で勘違いして間違い、その間違いが予期せぬQGISバグ(仕様?)で打ち消されて正解となっていることに後で気が付きました。私にとっての怪現象でした。
1 結果として正しく表示されている二枚貝殻偏位角
結果として正しく表示されている二枚貝殻偏位角(QGIS画面)
画像から二枚貝殻偏位角を計測している様子(1番貝殻に注目)
1番貝殻のQGIS画面における表示(計測画面と合っている)
2 データ処理の間違い
1番貝殻のPython計測角度は73.498395°です。この角度は水平右から反時計回りに計測した角度です。
QGISの角度は垂直上から時計回りに計測した角度で表示されます。
従って、Python計測角度を次の式で変換してQGISに投入すべきです。
90°-73.498395°=16.501605°
ところが、勘違いにより次のデータを投入してしまいました。
90°+73.498395°=163.498395°
3 間違いが正しく表示される怪現象の理由
QGISには本来16.501605°を投入して正しく表示されるところが、間違って投入した163.498395°で角度が正しく表示されるのですから、怪現象のように感じてしまいます。
ChatGPTに支援をもとめて、この怪現象の理由を突きとめました。ChatGPTの支援がなければ、この理由を突きとめることは1年かけても無理だったかもしれません。
●理由
QGISで角度を画面で表示する式はシンボロジ→単一定義→geometry generatorで次の式を使っています。
make_line(
$geometry,
project($geometry, 3, radians("angle_deg"))
)
この式を使う際の単位設定で㎜を使うとQGISの南北が反転します。今回はデフォルトで記入されていた㎜を使い、QGISの南北軸が反転していたのでした。別の単位(地図上の単位)を使うと南北軸反転は生じません。これがQGISのバグか仕様かは不明ですが、ここまでの詳しい情報はつまづいてみなければわからないことです。
geometry generatorで南北反転(Y軸反転)したため、本来は間違っているデータ90°+73.498395°=163.498395°が結果として正しく表示されるデータになっていたのでした。
もし、勘違いしないて、本来正しいはずのデータ90°-73.498395°=16.501605°を投入したら表示が間違い、その間違い探しをして、最後には今回と同じ結論(geometry generatorの㎜単位設定でY軸反転が生じる)に達したと思われます。
4 作業上の3つの角度の意味
今回の騒動で作業上3つの角度があり、それぞれ別モノとして理解を深めておく必要性を痛感しました。
angle_raw = Pythonで得た角度
angle_true = 本来のQGIS方位角
angle_draw = mm Geometry Generatorで表示を合わせる角度







e.jpg)
e.jpg)












































