地理情報システム

地図製作者、地理学者、およびGIS専門家のためのQ&A

1
楕円体距離がデカルト距離よりも大きいのはなぜですか?
EPSG:32632(WGS 84 / UTMゾーン32N)で正確に10 000 mの長さのラインストリングフィーチャをいくつか作成しました。 QGISは、すべての線の長さ(水平、垂直、対角)を10 001.9 mとして計算します。測定ツールは、「Project CRS変換がオンになっており、楕円体の計算が選択されています。座標は選択された楕円体(WGS84)に変換され、距離はメートルで計算されます。」 プロジェクトのプロパティで楕円体を「なし/平面」に設定すると、期待どおりの結果(10,000 m)が得られます。 「座標は選択された楕円体(WGS84)に変換されます」というフレーズを理解できません。これは、投影されていない次数(4326?)への変換ですか?32632は既にWGS84に基づいているため、変換するものはありますか?ある種の「大円」計算が含まれている場合は、長さが短くなるだけだと思っていました。 QGISの計算は正しい/意味がありますか、それは明らかに間違っていますか、それとも丸め誤差が発生していますか? これは私がテストしたジオメトリです: LineString (370000 5615000, 370000 5625000) LineString (366464.46609406732022762 5616464.46609406732022762, 373535.53390593267977238 5623535.53390593267977238) LineString (365000 5620000, 375000 5620000) LineString (373535.53390593267977238 5616464.46609406638890505, 366464.46609406638890505 5623535.5339059317484498) MappaGnosisの回答に加えて編集します。UTMでは、標準線内でスケールが1未満であることを忘れました。これは、タイトルの質問に対する単純な回答のようです。

1
Pythonスクリプトにgdal_mergeを呼び出す
私はpythonを初めて使用し、(スパイダー)pythonスクリプトでgdal_mergeを使用する方法に頭を悩ませています。私はWindows 10、Python 3.6を使用しており、osgeo4wからgdalツールをインストールしています。他の多くの投稿でこの問題について説明していますが、この問題の解決に役立つものはありません。 cmdからgdalモジュールを呼び出すと、それは魅力のように機能します: python "C:\OSGeo4W64\bin\gdal_merge.py" -o merged.tif input1.tif input2.tif ただし、Pythonスクリプト(スパイダー)では正しく機能しません。 最初のアプローチは出力を生成しますが、正しい名前ではありません。私が要求すると、「merged.tif」ファイルではなく「out.tif」ファイルが生成されます。 import sys sys.path.append('C:\\OSGeo4W64\\bin') import gdal_merge as gm gm.main(['-o', 'merged.tif', 'N00W078.tif', 'N00W079.tif']) 2番目のアプローチは、単に出力を生成しません。 import subprocess merge_command = ["python", "C:\OSGeo4W64\bin\gdal_merge.py", "-o", "merged.tif", "input1.tif", "input2.tif"] subprocess.call(merge_command,shell=True) この問題を解決する方法についての考えはありますか?


1
R gstat krige()-位置[5.88,47.4,0]で特異な共分散行列:スキップ
データテーブルで使用する値に応じて、クリギングを実行したい場合にのみ機能します。krige関数の結果として、私はのために取得var1.pred: NA NA NA ...し、var1.var: NA NA NA ...(私は私のDataTableの「間違った」値を使用する場合のみです。) 例えば: それが動作します常に(今のところ)私は10個の値を使用する場合 50個の値を使用すると機能しますが、特定の値でのみ機能します 50個の値と「間違った」値を使用すると機能しません 25個の値と前述の「間違った」値を使用すると機能します なぜ機能しているのか、機能していないのかわかりません。奇妙なことはZwiesel;49.02999878;13.22999954;2.2、データテーブルに追加するときに、20未満の値を使用すると機能するが、50を超える値を使用すると機能しないということです... 私の間違いはどこですか? myWeatherTable.csv: Place;Latitude;Longitude;Temperature Aachen;50.77999878;6.09999990;3 Abbikenhausen;53.52999878;8.00000000;7.9 Adelbach;49.04000092;9.76000023;3.1 Adendorf;51.61999893;11.69999981;1.9 Alberzell;48.45999908;11.34000015;4.6 ... ... クリギング補間を実行するための私のコード WeatherData <- read.csv(file="myWeatherTable", header = TRUE, sep ";") coordinates(WeatherData) = ~Longitude + Latitude vario <- variogram(log(Temperature) ~1, WeatherData) vario.fit <- fit.variogram(vario, vgm("Sph")) min_lon <- …

3
QGISを使用して線を曲線にしますか?
私はQGISの経験があまりなく、mmqgisプラグインで作成された場所を結ぶ線で地図を作成しています。美的な目的のために、これらの直接線を少し曲線的にする簡単な方法はありますか? 以下のマップのようなものを達成しようとしていますが、いくつかのハブがあります。私はPostGISやその他の高度なツールを使用してこれを行う方法の提案を読んだので、私の研究(ここの他の投稿を含む)を行い、いくつかのプラグインを使用してみました。多くの経験があります。

1
PyQGISでフィールドを追加して式を計算しますか?
PyQGISを使用して新しいフィールドを追加し、各フィーチャの値を計算したいと思います。Field Calculatorオプションに似ています。 'Field Calculator'式は次のとおりです。 y(start_point($geometry)) from PyQt4.QtCore import QVariant from qgis.core import QgsField, QgsExpression, QgsFeature vl = iface.activeLayer() vl.startEditing() #step 1 myField = QgsField( 'myNewColumn', QVariant.Float ) vl.addAttribute( myField ) idx = vl.fieldNameIndex( 'myNewColumn' ) #step 2 e = QgsExpression( 'y(start_point($geometry))' ) e.prepare( vl.pendingFields() ) for f in vl.getFeatures(): f[idx] …

2
プロバイダーから受け取ったカスタムTIFF画像でgdal2tilesを使用してタイルを生成する方法
私たちが持っている高解像度画像のタイルを生成するのに少し苦労しています。現在の画像は非常に大きい(+ 20GB)画像で、GeoTiffファイルとして保存されています。 TMS画像プロバイダーを使用してタイルを提供し、gdal2tilesコマンドラインユーティリティを使用してタイルを生成し、Cesiumで開いて表示します。gdalinfoを使用して、画像の詳細の一部を次に示します。 Driver: GTiff/GeoTIFF Files: image.tif Size is 52250, 56119 Coordinate System is: PROJCS["WGS 84 / UTM zone 35S", GEOGCS["WGS 84", DATUM["WGS_1984", SPHEROID["WGS 84",6378137,298.257223563, AUTHORITY["EPSG","7030"]], AUTHORITY["EPSG","6326"]], PRIMEM["Greenwich",0], UNIT["degree",0.0174532925199433], AUTHORITY["EPSG","4326"]], PROJECTION["Transverse_Mercator"], PARAMETER["latitude_of_origin",0], PARAMETER["central_meridian",27], PARAMETER["scale_factor",0.9996], PARAMETER["false_easting",500000], PARAMETER["false_northing",10000000], UNIT["meters",1], AUTHORITY["EPSG","32735"]] Origin = (606276.000000000000000,7197873.000000000000000) Pixel Size = (0.500000000000000,-0.500000000000000) Metadata: AREA_OR_POINT=Area TIFFTAG_MAXSAMPLEVALUE=13165 TIFFTAG_MINSAMPLEVALUE=1 TIFFTAG_RESOLUTIONUNIT=2 …

1
QGISコンポーザーの裁ち落としスペースでのラベルのレンダリングを防ぐ方法は?
私は地図がページの端に走る本の地図を作っています。プリンタは画像の周囲に3mmの裁ち落としスペースを推奨しているため、ページが127x177 mmの場合、画像は133x183 mmになるはずです。この裁ち落としスペースは、本のページが切り取られたときのエラーを許容するためのものであり、マップの場合には重要な情報はありません。だから私はこれらの余分な3mmをすべての辺に含むコンポーザーページサイズを使用しています。 町のラベルを地図の端で切り取ってほしくないので、[部分ラベルを表示]オプションを無効にしました。ただし、ラベルはこの3 mmの「ノーマンズランド」内にまだ表示されており、プリンターによってカットされる可能性があります。 私が検討した解決策は、2つの重なり合った同心円状の完全に位置合わせされたマップを作成することです。下のマップは裁ち落としの端まで走り、町は表示されません。上部のマップは本のページの正確なサイズになります(つまり3mm)基礎となるマップよりも各辺が少ないため)、町のレイヤーが表示されるため、町(またはラベル)が表示されていない場所に3 mmの境界線が作成されます。 ただし、これら2つのマップをcomposerで完全に整列させることはできません。これら2つのマップの範囲を計算して同じ中心と同じ縮尺になるようにしましたが、QGISコンポーザーは小数点以下3桁の精度が固定されているため、完全に位置合わせすることができません。 この問題に取り組む別の方法は、アトラス内の「マージンアラウンドフィーチャー」内でラベルをレンダリングできない新しい機能です。 裁ち落としの境界内にラベルが表示されないようにする方法はありますか?

1
経度/緯度をマップ上のピクセルに変換します
ここから地図があります。任意のlon / latペアをマップ上のピクセルに簡単に変換できるようにしたい(逆変換も可能)。マップには.tfwファイルと投影情報が付属しています。 0.02222222222222 0.00000000000000 0.00000000000000 -0.02222222222222 -180.00000000000000 90.00000000000000 と投影情報: Projection: Plate Carree aka Geographic or "LatLong" Earth ellipsoid: Sphere, radius 6370997 m Datum: WGS84 Extent: 180 West to 180 East, 90 North to 90 South Size: 16,200 height samples wide x 8,100 high Resolution: 2.47 km/pixel 私は地図作成関連のことをまったく知らないので、私が理解している限り、まずWGS84(経度/緯度のペア)から地理的投影法に変換する必要があります(同じではありませんか?)。実際には同じように見えますが、上の投影情報の球の半径は6370997で、プレートカリー投影で見つけたspatialreference.comページとは異なります。とにかく、私はDotSpatial.Projectionsライブラリが次のコードでこれを行うことができることを発見しました: var kievCoordinates …

2
PyQGISで利用可能なPostGIS接続を取得する
PyQGISでPostGISデータベースへの利用可能な接続を取得できますか?利用可能なdb-connectionsのリストを提供し、続いて私のプラグインのui内のテーブルのリストを提供したいと思います。 クックブックをチェックしましたが、これをさらに進める方法が見つかりませんでした。
10 qgis  postgis  pyqgis 

2
テーブルへのフィーチャクラスの1対多の結合
ArcMap 10.2.2をAdvancedライセンスで使用しています。私は他の基本的な分析にArcMapを使用しましたが、プログラムはかなり新しく、基本的なコーディングスキルしかなく、ArcMapのSQLコードビルダーを使用した非常に基本的なクエリ以外のSQLの経験はありません。 私は種の地理的範囲の多角形を持っています、そしてそれらの種によって運ばれる病原体/病気のリストの表があります。特定の種は複数の病原体を運ぶ。理想的な世界では、範囲のポリゴンを種+病原体のテーブルに結合し、ポリゴン/空間データを保持しますが、これを行うGISツールはないようです(私は後で重複する病原体を数えるので、複数の病原体に関する情報を持つ1つの機能ではなく、各種と病原体の組み合わせに独自の機能があることが重要です)。これらは私のデータのようになります(#1&#2、#3は後で使用します): 空間フィーチャの属性テーブル: 空間データのないテーブル: (これらは実際のデータではなく、病原体と種の組み合わせは実際とは異なる場合があることに注意してください。実際には115のポリゴンと519のテーブル行があります。種は1〜40の病原体を運ぶため、種は1〜40の行を持ちます私のテーブル) 追加のボーナスとして、私が行う必要がある将来の分析のために、テーブルからのデータの追加の列を保持できるように、この1対多の結合を実行できることが理想的です(例については以下を参照)これがどのように見えるか)。ただし、結合の方法がわかれば分析をやり直すことができるため、これはそれほど重要ではありません。 この問題に対して私が見つけたいくつかの解決策がありますが、それらは以下にリストされた理由のために私にとってはうまくいきませんでした: 解決策1:David Aalbersのブログ - 新しいスクリプトを編集する方法を理解し、それをArcMapにインポートする方法を理解するには、あまりにも初心者です。古いスクリプトを試しましたが、 test、test_1、test_1_1、test_1_1_1などのタイトルの空のポリゴンが大量に生成されました。 解決策2:1対多の結合 -クエリテーブルの作成ツールを使用しようとしました(式ビルダーを使用しましたが、SQLの知識がありません)。エラー000383が発生しました:テーブルの問題、ワークスペースが見つかりません&実行に失敗しました(MakeQueryTable)。すべてのファイルは同じフォルダーにありますが、ジオデータベースにはありません。

1
UAVからの画像を使用してエリア内の植物の数を数えますか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 1ヘクタールのブロック内のパイナップル植物の数を数えるにはどうすればよいですか? これらのアルゴリズムについて聞いたことがありますが、その方法がわかりません。 私はまだQGIS、ArcGIS、ENVIの初心者です。上記の領域のNIR、RGB、Red Edge画像があります。誰か私にそれを行う方法を教えてもらえますか? eCognition開発者にアクセスできますが、このソフトウェアはまだ初めてです。

1
SRID 4326(WGS 84)から4269(NAD 83)SRIDへの再投影が必要ですか
MSSQL DBにSRID 4269として保存されている州の境界に対する米国国勢調査データがあります 。 そのデータセットに対する計算に使用される入力データは、SRID 4326として保存されます。 SpatialReference.orgから推測できる限り、SRID 4269はSRID 4326のサブセットにすぎず、座標の再投影は必要ありません。 入力データが常にSRID 4269の境界内にある場合、実際にSRID 4326からSRID 4269に再投影する必要がありますか?

1
Rポリゴンを引き裂く原因を強化する
ggplot2を使用して空間データをプロットするのに問題があります。spplotを使用してプロットするとマップが正常に見えるため、要塞化段階でティアリングが発生すると想定しています。 コードは次のとおりです。 #install the packages library(rgdal) library(mapproj) library(raster) library(rgeos) library(ggplot2) library(plyr) if (!require(gpclib)) install.packages("gpclib", type="source") gpclibPermit() setwd("C:/Users/My Documents") #read in laa to regional mapping #must aggregate to higher level regions as data is provided at this higher level laa_region_mapping <- read.csv("laa_region.csv", header = TRUE) #read in LAA polygons laa_polygons <- …
10 r  ggplot2  rgeos 


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.