Giter Site home page Giter Site logo

Comments (9)

Kanahiro avatar Kanahiro commented on September 3, 2024 1

で、ファイルの他にパラメータとしてCRSを渡して付与する機能はcsmap-pyには現状ないです

社内OSSなのでいじってもらって一向にかまわないです
https://github.com/MIERUNE/csmap-py

from csmap-qgis-plugin.

geogra-geogra avatar geogra-geogra commented on September 3, 2024 1

ありがとうございます

確かに、再投影と定義が曖昧になっていました。

その仕様でいきたいと思います

明日以降、まずはcsmap-pyの方でissue立ててブランチ切ります

from csmap-qgis-plugin.

Kanahiro avatar Kanahiro commented on September 3, 2024

csmap-py自体は、入力データと同じCRSで出力するようにはなっています
入力データにCRS未設定の場合の挙動は…未定義 😢 エラーにはならないと思われ、多分単に位置情報を持たないデータとなる

from csmap-qgis-plugin.

geogra-geogra avatar geogra-geogra commented on September 3, 2024

現状把握

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.

geogra-geogra avatar geogra-geogra commented on September 3, 2024

@Kanahiro

-crs を加えて指定することで、元のファイルとは異なるCRSに変更できるようにしたいです。

未指定の場合は、もとのCRSが採用されるようにすれば良いと思います。
CRS未定義のもので、特に何も選択しなかった場合については、無理やりCRSをつけたりはしなくて良いかと思います。

CRSの定義/未定義はもとのファイルにCRSが設定されているかどうか
未指定/指定は-crsやQGIS上でCRSを指定するかどうかになります

CRS定義済み+末指定→もとのCRS
CRS定義済み+指定→指定したCRS
CRS未定義+未指定→CRS未定義
CRS未定義+指定→指定したCRS

以上で考えたのですがいかがでしょうか?

from csmap-qgis-plugin.

Kanahiro avatar Kanahiro commented on September 3, 2024

未指定の場合は、もとのCRSが採用されるようにすれば良いと思います。

賛成です。従来と挙動が変わらないということなので。

ゆえに、以下の挙動を考えることになります。

CRS定義済み+指定→指定したCRS
CRS未定義+指定→指定したCRS

from csmap-qgis-plugin.

Kanahiro avatar Kanahiro commented on September 3, 2024

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.

Kanahiro avatar Kanahiro commented on September 3, 2024

CRS定義済み+指定→指定したCRS

一方こちらは、定義済みのCRSがある=位置情報を持つということです。このデータの投影法を変更するということは、データの再投影(reprojection)を行うことを意味します。

再投影はコストの高い処理です。現状のcsmap-pyは、どれだけ大きいDEMであってもチャンクごとに処理しているので、メモリ効率などは悪くないはずです。
一方、再投影は完成したCS立体図に対して実行しなければならず、現状の変換処理が終わった「あと」に実行されることになります。

以上から、IMO:

  • 入力のDEMを予め、望みの投影法にしておいてもらうか
  • 出力したCS立体図を、gdalwarpなどで再投影してもらう

ということで良いのではないかと思います。(再投影はこのライブラリ内では行わない)

from csmap-qgis-plugin.

Kanahiro avatar Kanahiro commented on September 3, 2024

以上から、私の意見は:

  • -teオプション, -te_srsオプションを追加する
  • これらが設定されている場合は、元のCRSがなんであれ、常に位置情報を「上書き」する(再投影はしない)

という仕様です。いかがでしょうか。 @geogra-geogra

from csmap-qgis-plugin.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.