Comments (9)
で、ファイルの他にパラメータとしてCRSを渡して付与する機能はcsmap-pyには現状ないです
社内OSSなのでいじってもらって一向にかまわないです
https://github.com/MIERUNE/csmap-py
from csmap-qgis-plugin.
ありがとうございます
確かに、再投影と定義が曖昧になっていました。
その仕様でいきたいと思います
明日以降、まずはcsmap-pyの方でissue立ててブランチ切ります
from csmap-qgis-plugin.
csmap-py自体は、入力データと同じCRSで出力するようにはなっています
入力データにCRS未設定の場合の挙動は…未定義 😢 エラーにはならないと思われ、多分単に位置情報を持たないデータとなる
from csmap-qgis-plugin.
現状把握
csmap-pyのなかでの挙動
process.py
with rasterio.open(input_dem_path) as dem:
...
with rasterio.open(
output_path,
"w",
driver="GTiff",
dtype=rasterio.uint8,
count=4,
width=out_width,
height=out_height,
crs=dem.crs,
transform=transform,
compress="LZW",
) as dst:
crs=dem.crs,
のように、CRSがそのまま通るように書かれている
考えられる仕様
- 常に上書きする(CRS指定するUIが必要になる)
- 再投影する(これまで同様?指定されてない場合どうする?)
- その他
変更するコードの方向性
process.pyのcrs=dem.crs,
の部分を書き換えることになる。
main.pyの部分で、他のパラメータと同様にQGISプラグイン上で動作するように行う
また、選択したCRSを出力する
from csmap-qgis-plugin.
-crs を加えて指定することで、元のファイルとは異なるCRSに変更できるようにしたいです。
未指定の場合は、もとのCRSが採用されるようにすれば良いと思います。
CRS未定義のもので、特に何も選択しなかった場合については、無理やりCRSをつけたりはしなくて良いかと思います。
CRSの定義/未定義はもとのファイルにCRSが設定されているかどうか
未指定/指定は-crsやQGIS上でCRSを指定するかどうかになります
CRS定義済み+末指定→もとのCRS
CRS定義済み+指定→指定したCRS
CRS未定義+未指定→CRS未定義
CRS未定義+指定→指定したCRS
以上で考えたのですがいかがでしょうか?
from csmap-qgis-plugin.
未指定の場合は、もとのCRSが採用されるようにすれば良いと思います。
賛成です。従来と挙動が変わらないということなので。
ゆえに、以下の挙動を考えることになります。
CRS定義済み+指定→指定したCRS
CRS未定義+指定→指定したCRS
from csmap-qgis-plugin.
CRS未定義+指定→指定したCRS
まずこちら。DEMにCRSが設定されていない場合、オプションがあったら設定する、のは正しいように思います。
ただしその場合、EPSGコードだけでなく、そのラスターがどの領域を示しているか(コード中ではtranformのこと)という情報がなければ、結局は正しい位置を参照することが出来ません。なので以下のような追加オプションが必要になるでしょう。
https://gdal.org/programs/gdalwarp.html#cmdoption-gdalwarp-te
GDALを参考にすれば、-te
-te_srs
というのがあるので:
csmap input.tif output.tif -te_crs EPSG:6668 --te 140.1 40.2 140.3 41.2
となるでしょうか。
from csmap-qgis-plugin.
CRS定義済み+指定→指定したCRS
一方こちらは、定義済みのCRSがある=位置情報を持つということです。このデータの投影法を変更するということは、データの再投影(reprojection)を行うことを意味します。
再投影はコストの高い処理です。現状のcsmap-pyは、どれだけ大きいDEMであってもチャンクごとに処理しているので、メモリ効率などは悪くないはずです。
一方、再投影は完成したCS立体図に対して実行しなければならず、現状の変換処理が終わった「あと」に実行されることになります。
以上から、IMO:
- 入力のDEMを予め、望みの投影法にしておいてもらうか
- 出力したCS立体図を、gdalwarpなどで再投影してもらう
ということで良いのではないかと思います。(再投影はこのライブラリ内では行わない)
from csmap-qgis-plugin.
以上から、私の意見は:
-te
オプション,-te_srs
オプションを追加する- これらが設定されている場合は、元のCRSがなんであれ、常に位置情報を「上書き」する(再投影はしない)
という仕様です。いかがでしょうか。 @geogra-geogra
from csmap-qgis-plugin.
Related Issues (20)
- リポジトリの作成
- pyproject.toml,metadata.txtの修正
- QGISでDEMからCS立体図を作成できる状態にする
- ユーザーがパラメータを設定できるようにする
- `csmap-py`をsubmoduleとして取り込む
- 入力・出力をUIで操作できるようにする
- csmap.tif出力後,自動的にプラグインを閉じる
- csmap.tif出力後,自動的にマップに追加する
- 設定画面が必ず最前面に来るようにする HOT 3
- 出力ファイル名に柔軟性を持たせる HOT 3
- 作成したデータはそのままレイヤに追加するようにする HOT 2
- .tif以外の拡張子に対応する
- パラメータ操作時のプレビュー
- プロジェクトに存在するラスターレイヤーの入力に対応する HOT 2
- READMEの更新
- パラメーター設定のボタン修正
- 複数ファイルの入力に対応する
- 入力データが複数選択された場合は仮想ラスターとして処理した後にCS立体図を作成する
- アイコンの作成 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from csmap-qgis-plugin.