QGISでXYZ TilesラスターをGDALの処理対象にしてはいけない


常識なのかわからないが、1時間くらいハマったのでメモ。結論はタイトルのとおりです。

ハマりどころ

画像のように、XYZTilesがデータソースのラスターレイヤーをGDALのinputにすると以下のエラーが発生します。

GDAL command:
gdal_translate -projwin 15035200.093663722 6341338.464803632 17500752.87803036 4071703.688974686 -of GTiff type=xyz&url=https://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png&zmax=19&zmin=0 /var/folders/7k/k1kthlzj373_fb038q38tmzr0000gn/T/processing_398638b5f39c416ab16b32ab626cdf75/17a16b3aac7c43baad3ae048d6914b0c/OUTPUT.tif
GDAL command output:
/bin/sh: /var/folders/7k/k1kthlzj373_fb038q38tmzr0000gn/T/processing_398638b5f39c416ab16b32ab626cdf75/17a16b3aac7c43baad3ae048d6914b0c/OUTPUT.tif: No such file or directory

〜中略〜

出力レイヤの読み込み
次のレイヤは正しく生成されませんでした。<ul><li>/var/folders/7k/k1kthlzj373_fb038q38tmzr0000gn/T/processing_398638b5f39c416ab16b32ab626cdf75/17a16b3aac7c43baad3ae048d6914b0c/OUTPUT.tif</li></ul>QGISメインウィンドウの"ログメッセージパネル"をチェックすると、アルゴリズムの実行に関する詳細情報が表示されます。

解決

パスが通っていないのかな〜なんて1時間くらい困っていると、Redditに答えが書いてありました。

I may be wrong but I think you need to input a file or directory instead of a map service. You could export a raster of your area of interest and use that as input, or maybe you can load your service into a virtual raster layer and try inputting that.

ということで、一旦ローカルに.tifファイルとして保存してからGDALを動かしたらちゃんと動作しました。