問題タブ [cartopy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matplotlib - Matplotlib プロジェクション削除マージン
これは、上に作成された米国の郡の画像です。
で見ることができる「ライブ」図ではplt.show()
、図の周りに大きな灰色の領域があります。ここでは、白いパディングで見ることができます (見えません)。
だから私はもう少しズームインできると思った:
そして、これは起こりました:
Figure の周囲にはまだ白いマージン/パディングがありますが、突然トリミングされます。「ライブ画像」も、投影の周りに配置されているように見える白い余白を示しています。
plt.tight_layout()
実際に余白の多くを削除しましたが、一部を残しました (2 番目の写真は、レイアウトを引き締めた後に撮影されたものです) 。ax.set_extent()
この目に見えないマージンにより、マップを拡張できる場所まで見ることができないため、特に困難になります。
プロジェクションの周りの隠れたパディング/マージンをすべて削除する方法はありますか?
python - Python の地図上に Cassini-Soldner 投影で RGB 衛星画像をプロットする
私は MODIS 装置から geotiff 形式で地理参照された RGB 衛星画像を持っています。cartopy を使用してマップ上にプロットし、RGB カラーを保持する正しい方法は何ですか?
私が推測する主な障害は、Cassini-Soldner である画像の投影です。
この例https://ocefpaf.github.io/python4oceanographers/blog/2015/03/02/geotiff/に従い
、cartopy を使用して EPSG コードからの投影を定義しようとしました。そこで、Cassini-Soldner EPSG コード (9806) をググってみましたが、cartopyccrs.epsg()
はそれを認識しません。
メソッドを使いたいのですが、軸を作成する際の射影キーワードとして何を使用し、 で引数plt.imshow()
として何を渡すか、少し混乱しています。transform=
imshow
python - cartopy: 大圏距離線の高解像度
2 点間の大円距離をプロットしようとしています。cartopy ドキュメント (introductory_examples/01.great_circle.html) で見つけました:
これにより、次の画像が作成されます。
問題は、私自身の作品では、この 2 つの点が互いに非常に接近しており、投影が異なるということです (ここでは重要ではないと思いますが)。このコードを小さな領域の行に変更すると、次のようになります。
これにより、次の画像が作成されます。
この場合の赤い大円の線は見栄えが悪く、解像度が低すぎることが原因のようです。大円線を構成する点の数を増やすにはどうすればよいですか?
python-2.7 - pip を使用してマップ/プロット ライブラリ cartopy および basemap をインストールする方法
cartopy とベースマップをインストールする前に、いくつかの依存関係を満たす必要があることを理解しています。pip
(など)を使用してそれらのほとんどを整理しましたnumpy
。
Proj.4にはカートピーの問題があり、GEOS にはベースマップの問題があることがわかりました。Java プロジェクト Proj.4 への Python バインディングで十分だと思いましたが、C++ ライブラリ GEOS で少し迷っています (GEOS には GDAL で十分だと思います。この方法で Python の世界にリンクしました: pip install --global-option=build_ext --global-option="-I/usr/include/gdal" GDAL==`gdal-config --version
)。
anaconda、canopy などのようなものはすべて避けたいと思います。可能であればpip
、Ubuntu ( apt-get
、pip
十分でない場合のみ) と Mac OSX (homebrew 、十分でbrew install <some_package>
ない場合のみ) の両方でのみ使用したいと思いpip
ます。
cartopyは、古すぎる Proj.4 のバージョンでスタックします。pip
出力は次のとおりですProj4 version 4.8.0 is installed, but cartopy requires at least version 4.9.0.
。この Python バインディングのインストールで十分だと思っpip
ていましたが、問題は解決しません。
Proj.4 への python バインディングが十分ではない理由がわかりません。それらのバインディングが を使用して利用可能な最新バージョンであってもですpip
。
ベースマップはさまざまな方法で動かなくなります:
- どういう
pip2 install basemap
わけか私が得るCould not find a version that satisfies the requirement basemap (from versions: ) No matching distribution found for basemap
しかし、ベースマップのドキュメントから、
/li>pip
何らかの理由でライブラリがリポジトリにリンクされておらず、ソース コードからインストールする必要があることがわかりました。だから私は実行しました:pip2 install https://github.com/matplotlib/basemap/archive/v1.0.7rel.tar.gz
そしてGEOS
、C++ コードのコンパイルがトリガーされ、しばらくすると、下部で次のように停止すると思います:
何が間違っているのかわかりません:
- cartopy に正しい Proj.4 のものを提供する方法は? 実際には、既存のバージョンの Proj.4 で問題ない古いバージョンの cartopy を見つけることをお勧めします (これは
pip install
バインディングに由来すると想定しています) 。 - セットアップした GDAL リンクから GEOS を見つけるベースマップを取得する
pip
方法 それで十分でない場合は、さらに何をすればよいですか?おそらくapt-get
、ベースマップのインストール内で GEOS コンパイルをトリガーすることを回避する GEOS パッケージの一部でしょうか?
Java バイナリ、C++ バイナリ、および python パッケージへのバインディングの間の無人地帯で、私は少し混乱しています。
pip - proj_api.h を pip install cartopy で使用できるようにする
cartopy
経由でインストールしようとしてpip install cartopy
います。インストールproj.4
して、必要なファイルをここに配置しました
~/Downloads/proj-4.9.2 $ ls -l /usr/local/include/proj_api.h
-rw-r--r--@ 1 dom admin 5911 Nov 21 11:06 /usr/local/include/proj_api.h
しかし、pip install
それを見つけていません:
gcc -fno-strict-aliasing -I/Applications/SageMath/local/var/tmp/sage/build/python2-2.7.10.p2/include -DNDEBUG -g -fwrapv -O3 -Wall -Wno-unused -I/Applications/SageMath/local/include -I./lib/cartopy -I/usr/local/Cellar/geos/3.5.0/include -I/Applications/SageMath/local/include/python2.7 -c lib/cartopy/trace.cpp -o build/temp.macosx-10.9-x86_64-2.7/lib/cartopy/trace.o
lib/cartopy/trace.cpp:282:22: fatal error: proj_api.h: No such file or directory
#include "proj_api.h"
^
compilation terminated.
error: command 'gcc' failed with exit status 1
-I/usr/local/include
上記のgcc
コマンドに表示されるようなものを取得するにはどうすればよいですか? どういうわけかそこ-I/usr/local/Cellar/geos/3.5.0/include
に置かれます。
python - オブジェクト インスタンス内の一見不変の dict
次のcartopy
コードを実行すると:
私は得る:
proj4_params
プロパティが不変であることを意味します。
しかし、それはただの標準dict
です:
これは C で実装されているため、上書きしてこの種の動作を行うことはできません (少なくとも安全ではありません)。
わかりましたが、このクラスのコードは非常に単純なので、私の理解には何か問題があります。誰かが私にこの振る舞いをしている理由を説明できますか?
編集:
以下:
結果:
python - Cartopy での正射投影に関するシェープファイルのプロットの問題
この質問に関連して、カートピーを使用して特定の国で色を付けようとしています。リンクされた質問の例をコピーするとうまくいきますが、正投影を使用すると失敗します。MWEと画像が含まれており、ご覧のとおり、ドイツは色付けされていません.
(シェープファイルデータはこちらから入手できます。)
linux - Cartopy を linux-32 の python-3.5 にインストールする方法
condaを介してインストールしようとすると
追加メッセージ:
パッケージのメタデータを取得しています .......... パッケージの仕様を解決しています: .
PackageNotFoundError: パッケージが見つかりません: '' 現在の linux-32 チャンネルにパッケージがありません: - cartopy
近い一致が見つかりました。これらのいずれかを意味しましたか?
anaconda.org でパッケージを検索するには、
私が走るとき
新しいメッセージが表示されます
パッケージ: 名前 | バージョン | パッケージの種類 | プラットフォーム
...
22 個のパッケージが見つかりました
そして、それらの1つを使用しようとすると-たとえば
私は受け取ります
パッケージのメタデータを取得しています .... パッケージの仕様を解決しています: ....
UnsatisfiableError: 次の仕様が競合していることが判明しました: - cartopy - python 3.5* 「conda info」を使用して、各パッケージの依存関係を確認してください。
このパッケージをシステムにインストールするにはどうすればよいですか?
python - Cartopy が Proj.4 を見つけられない
tar.gz から proj-4.9.1 を正しくインストールしました。
./configure --prefix=/path/to/directory
次に「make」と「make install」。それにもかかわらず、cartopyは私に言います
Proj4 4.9.0 がインストールされている必要があります。
セットアップスクリプトを実行します
それで、私は他に何か世話をする必要がありますか?