地理情報システム

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

2
QGISのコア機能はマルチスレッドを利用しますか?
QGISでマルチスレッド処理を有効にするを読んだ後?、さまざまなプロセスを実行するときにQGIS 2.6にこれが含まれるかどうか疑問に思っていました。オンラインで確認したところ、QGIS 2.4にマルチスレッドレンダリングが導入されていることだけがわかりました(2.6でも利用できると思います)。特に大規模なデータセットを扱う場合、マップを非常にすばやく再描画できるようになりました。 コア機能にマルチスレッディングを含めるのはかなり難しいことと、PyQGISでのGIS操作の並列化などでPythonコードを操作してこれを実現することをユーザーに勧めていることを読みました。。 機能のリクエストも確認しましたが、Tim Suttonによって9か月間閉鎖されており、最後のコメントは次のとおりです。 「私はこれを締めくくっています-Martin DobiasはQGIS 2.2の後にマージされるブランチでの実装を持っています」 QGIS 2.6の一部の機能はマルチスレッドを利用しますか(または再びレンダリングに焦点を当てます)、そうでない場合、QGIS 3.0で変更されますか?

2
新しいSRTM 30メートルをダウンロード
30メートル(SRTM 30メートル)のデジタル標高モデルの新しいバージョンについて読みましたが、ダウンロードできたのではわかりません。 いくつかの情報源: http://glcfapp.glcf.umd.edu:8080/esdi/index.jsp http://asterweb.jpl.nasa.gov/data.asp http://www2.jpl.nasa.gov/srtm/

3
Landsat 8を分類する際の山の影の処理
2013年のランドサット8衛星画像を使用して、モンゴル北部の一部のエリアを分類しようとしています。記録は冬に行われたため、取得時の太陽は非常に低くなっています。したがって、山からの非常に長く暗い影があります。 この質問で説明されているように、DEMを使用してこの影を識別することができます:Landsat画像から影のような地形効果を削除する方法 クリップされたシャドウ領域の監視付き分類を実行するにはどうすればよいですか?この領域を強化することは可能ですか?いくつかのバンド比を試してみましたが、どちらが自分の仕事に最適かわかりません。 この画像では、暗い影にいくつかの植生領域があることがわかりますが、それらを分類することはできません。

2
アーバンLIDARからのクリーニングブロックパターン(街路から隆起したブロック)
我々は持っている1メートルのLIDARのDEM街からを。 このリンクから小さなサブセットをダウンロードできます。 このスクリーンショットは、灰色のパレットを備えた生のDEMを示しています(暗い帯は通り、灰色がかった白っぽい長方形はブロックです)。 これはサントドミンゴ市内の場所に対応し、次のGoogleスクリーンショットで確認できます。 平均して、ブロックはおよそ「隆起」しています。通りから2メートル。これは正しくありません。ストリームネットワークと地形湿潤指数(TWI)を生成するクリーンなDEMが必要です。DEMが提供されている場合(レーザースキャナーからの元のバンドはありません)、水路網は長方形のレイアウトに従っているように見え、TWIはブロックパターンをもたらしました。これらの写真は結果を示しています。 これは、r.watershedin で生成されたストリームネットワークの結果ですGrass GIS。 そして、これはTWI結果であり、以下で生成されSAGAます: この不正確さを解決するためにいくつかの手順を試みましたが成功しませんでした: 1)ノイズ除去ツール。でr.denoiseツールを適用しましGrass GISたが、モジュールのインストールで問題が発生しました。Windowsのシェルで再度実行しましたが、メモリ不足のメッセージを受け取りました。 2)フィルター。私たちは、(別のウィンドウサイズで、フィルター(ローパス、中央値、平均値、など)の種類を走り、通りの方向に重みを置くしようとしていますGrass GIS、SAGA、QGIS)。 3)地球統計学。道路全体にポイントクラウドを生成し(1000ポイントと2000ポイントを試行)、バリオグラムモデルを生成し、通常のクリギングを実行してブロックを塗りつぶしました。バリオグラムモデリングと通常のクリギングは、Rさまざまなパッケージを使用してで行われました。線形バリオグラムが得られたので、クリギングの結果に依存しません。 4)その他のツール。ALDPATツールをインストールしましたが、プログラムがDEMを読み取れなかったため、機能しませんでした。 すべての場合において、長方形の河川ネットワークを回避できなかったため、排水ネットワークに関する結果は良くありませんでした。また、TWIは依然としてブロックパターンをもたらしました。 特に、OK補間結果では、ネットワーク結果に影響を与える点のようなパターンDEMが得られました。ただし、blocksパターンの効果は減少しました。 また、この質問と回答を確認しました... DSMからキャノピーと建物をフィルタリングして地表の高度を取得する ...にリダイレクトされましたがWhitebox Geospatial Analysis Tools、DEMをに変換できませんでしたLAS format。また、Bare-Earth DEM tool半透明のオブジェクトを削除するために設計されたものであり、誤って「持ち上げられた」ブロックではないため、私たちの効果については確信が持てませんでした。 水路解析を行うために高品質のDEMを生成したいのですが、他に何ができるかわかりません。

1
Postgisデータベースクエリの最適化
DTED形式のラスターセットがあり、raster2pgsqlコマンドラインツールを使用してPostGISデータベースにロードします。 各ラスターは単に行に格納され、ridとラスター形式の値によって記述されます。 次に、ポイントの経度と緯度を取得し、このポイントに対応するピクセルの値を返すデータベース関数を作成します。 私が抱えている問題は、データベースがOdroidボードで動作するため、それを行うのにかなりの時間がかかる(3〜4秒)ことです。 私が処理するデータセットは非常に大きい(ラスターは英国全体をカバーしている)ことはわかっていますが、PostgreSQLとPostGISに精通していないため、より高速に処理できると思います。 これは私がこれまでに行ったことです: SELECT ST_Value(rast, ST_GeomFromText(CONCAT('POINT(', $1, ' ', $2, ')'), 4326)) FROM ( SELECT * FROM rasters WHERE rast && ST_GeomFromText(CONCAT('POINT(', $1, ' ', $2, ')'), 4326) ) x; $1そして、$2それぞれ長いと緯度です。

1
標高に基づいてポイント間の距離を測定するにはどうすればよいですか?
ポイント間の距離を測定できるようにする必要がありますが、距離は標高との関係で計算する必要があります。ポイントは、19世紀の語り手たちの家と、その物語で言及されている場所です。したがって、距離は「歩行距離」でなければなりません。谷に沿ったパスは、実際の直線距離が短い場合でも、山の上のパスよりも短くなる可能性があります。添付のスクリーンショットは私の考えを示しています。したがって、画像では、パスAとCはパスBよりも短く計算されます。 ポイントはCSVファイルからのものですが、標高データを含むラスターレイヤーもあります。
10 qgis  distance 

1
GDALとPythonを使用してラスタをジオリファレンスしますか?
pythonおよびを使用してラスターを地理参照したいGDAL。私の現在のアプローチは、地上管制点の醜いリストを呼び出しgdal_translateてgdalwarp使用os.systemすることです。私はこれを内でネイティブに行う方法を本当に望んでいますpython。 これは私が使用している現在のプロセスです: import os os.system('gdal_translate -of GTiff -gcp 1251.92 414.538 -7.9164e+06 5.21094e+06 -gcp 865.827 107.699 -7.91651e+06 5.21104e+06 "inraster.tif" "outraster1.tif"') os.system('gdalwarp -r bilinear -tps -co COMPRESS=NONE "outraster2.tif" "outraster3.tif"') インポート後にアクセスできると述べている2012年からの以前の質問と回答gdal_translateがありますgdal。が廃止されているのか、それが間違っているのかfrom osgeo import gdalはわかりませんが、実行しgdal.gdal_translateてもオプションとして表示されません。 それが存在するかどうかはわかりませんが、ラスタをpythonicの方法で変換および再投影できたら嬉しいです。例えば: # translate gcp_points = [(1251.92, 414.538), (-7.9164e+06, 5.21094e+06)] gdal.gdal_translate(in_raster, gcp_points, out_raster1) # warp gdal.gdalwarp(out_raster1, out_raster2, 'bilinear', args*) そのようなアプローチは可能ですか?

3
ArcGIS Collector App内で複数のユーザーのコンテンツを管理していますか?
私は何百人もの人々がデータを収集しています。各ユーザーは、ArcGIS Onlineログインを持っています。ログインしたユーザーに基づいて、ArcGIS Collectorアプリに表示されるコンテンツをフィルターできるようにしたいのですが、ユーザーごとに異なるWebマップを使用するというメンテナンスの負担をかけたくありません。フィーチャサービスに、ユーザーがデータを表示する必要があることを示すフィールドがあります。 これを達成する方法に関するアドバイスはありますか?

5
ArcGIS Desktopを使用して、1つのシェープファイルから重複するポリゴンをカウントしていますか?
16,400ポリゴンのシェープファイルがあります。各ポリゴンは、全世界の鳥種の拡大を示しています。 次に、重なり合うポリゴンを数える必要があります。ユニオンとディゾルブを試してみました(ユニオンを数える)が、ユニオンがあまりにも多くのポリゴンで機能しない。 その後、大陸を切り取ろうとしましたが、ポリゴンの数が非常に多いため、これも機能しません。さらに、私もこの方法を試しましたが、成功しませんでした。 したがって、16400のポリゴンが1つのシェープファイルにある場合、重複するポリゴンをカウントする方法があるかどうかを尋ねています。 私は10.0を使用しており、10.2を使用できます。ArcPyソリューションも素晴らしいです。 現在、フィッシュネットを作成し、16400ポリゴンでshpの行を反復処理し、ポリゴンがこのセルにあり、次の行(ポリゴン)を取得する場合、フィッシュネットセルの値フィールドに1を書き込みます。これもフィッシュネットのセル数に含まれる場合+1。 しかし、これが良い解決策であるかどうか、そしてそれを実現する方法はわかりません。または、このアプローチを使用するにはRを学ぶ必要があります。 結果:オーバーラップしているポリゴンから新しいポリゴンができたシェイプと、オーバーラップがカウントされるフィールドになります。 したがって、最終的には、同じ場所にいくつの鳥種が見つかったかを確認できるシェープファイルがあるはずです。

2
datetime.date.today()から今日の日付で日付フィールドを計算していますか?
arcpy.CalculateField_managementを使用して現在の日付を属性テーブルに追加するツールの一部に取り組んでいます。私はインターウェブをずっとさまよいましたが、この問題の解決策を見つけることができません。 このコードを使用すると、「12:00:00 AM」という値が返されます input = r'C:\GIS\CARGIS\SHAPES.gdb\CRASH_ON_2013' today = datetime.date.today() dte = today.strftime('%m/%d/%Y') arcpy.CalculateField_management(input,"DTCARXTRCT",dte,"PYTHON") このコードを使用すると、今日の日付「10/07/2014」から値「06/19/1905」を取得します input = r'C:\GIS\CARGIS\SHAPES.gdb\CRASH_ON_2013' today = datetime.date.today() dte = str(today) arcpy.CalculateField_management(input,"DTCARXTRCT",dte,"PYTHON") 私が間違っていることについて何か考えはありますか?更新カーソルの使用を避けたいのですが、それが最後のオプションであればそうします。

3
QGISを使用してポイントデータから等高線を作成する方法
QGIS 2.4.0を使用していますが、標高データとXおよびY座標を含むポイントのシェープファイルがあります。Windows 7 OSを使用しています。 アイデアは、私のポイントデータを使用して等高線SHPを作成することです。 私の質問は、どうすればその問題に取り組み始めることができますか?機能はありますか?段階的なプロセスはありますか?
10 qgis  dem  elevation  contour 

1
リーフレットからGeoJSONレイヤーに属性を追加するにはどうすればよいですか?
LeafletマップでGeoJSONレイヤーを使用する必要があります。これが私のコードのサンプルです: function onEachFeature(feature, layer) { if (feature.properties && feature.properties.popupContent) { layer.bindPopup(feature.properties.popupContent); } } myGeoJsonLayer = L.geoJson(data, { pointToLayer: function (feature, latlng) { return L.circleMarker(latlng, geojsonMarkerOptions); }, onEachFeature: onEachFeature }); myGeoJsonLayer.addTo(map); TOC.addOverlay(myGeoJsonLayer, "My GeoJSON Layer"); すべてが機能しています。 レイヤーに属性を追加したいのですが、どうすればよいですか?

1
Pythonスクリプトツールのパラメーターでドロップダウンリストを設定しますか?
私が作成したpythonスクリプトからツールを作成しようとしています。これは、作成したリストを取得し、入力の1つとして完成したツールのドロップダウンメニューとして使用します(たとえば、添付の画像を参照)。 私が使用しているリストは、バーモント州のすべての町を含む大きなリストであり、スクリプトからテーブルから生成します(以下のコードを参照)。私の現在の問題は、ツールのプロパティを設定してこのリストを取得し、それを使用してユーザーのドロップダウンリストを作成することにあると思います。パラメータで使用するためのリストを作成するコードのブロックは次のとおりです。ツールのこのコードの終わりに問題が発生している人はいますか? import arcpy arcpy.env.workspace = "Z:\\OPS\\TechnicalServices\\Culverts\\GetCulverts\\GetCulverts.gdb" towns = "Database Connections\\GDB_GEN.sde\\GDB_Gen.VTRANS_ADMIN.townindex" arcpy.MakeFeatureLayer_management(towns,"towns_lyr") NameList = [] NameListArray = set() rows = arcpy.SearchCursor("towns_lyr") for row in rows: value = row.getValue("TOWNNAME") if value not in NameListArray: NameList.append(value) town = NameList town = arcpy.GetParameterAsText(0) 以下は、デフォルトの検証コードを使用したツールプロパティの画像です。この検証コードを変更する必要がありますか? この検証コードの変更に関する情報を探しましたが、ドロップダウンリストのフォーマットに使用するための情報が見つかりませんでした。



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