ArcGIS Python API<\/A>を活用しており、手動または後ほど説明するさまざまなソースから自動的に実行できます。 また、このスクリプトは、資産の位置情報がGISポータル内のフィーチャレイヤーにあり、嵐の進路として使用されるポリゴンフィーチャレイヤー、およびアラームや脆弱な資産を追加するためのレイヤーが必要です。スクリプトは以下に添付されていますが、まずは分解して説明します。<\/P><\/P>
まず、必要なArcGIS pythonライブラリをインポートし、GISポータルに認証します。 このスクリプトはフィーチャレイヤーを使用するため、主にarcgis.featuresモジュールを使用します。<\/P>
<SPAN class="keyword token">from<\/SPAN> arcgis<SPAN class="punctuation token">.<\/SPAN>gis <SPAN class="keyword token">import<\/SPAN> GIS
<SPAN class="keyword token">from<\/SPAN> arcgis<SPAN class="punctuation token">.<\/SPAN>features <SPAN class="keyword token">import<\/SPAN> FeatureLayer
<SPAN class="keyword token">from<\/SPAN> arcgis<SPAN class="punctuation token">.<\/SPAN>features<SPAN class="punctuation token">.<\/SPAN>managers <SPAN class="keyword token">import<\/SPAN> FeatureLayerManager
<SPAN class="keyword token">from<\/SPAN> arcgis<SPAN class="punctuation token">.<\/SPAN>geometry <SPAN class="keyword token">import<\/SPAN> filters
<SPAN class="keyword token">from<\/SPAN> IPython<SPAN class="punctuation token">.<\/SPAN>display <SPAN class="keyword token">import<\/SPAN> display
gis <SPAN class="operator token">=<\/SPAN> GIS(<SPAN class="string token">"https:\/\/your.portal.here\/"<\/SPAN>, <SPAN class="string token">'username'<\/SPAN>, <SPAN class="string token">'password'<\/SPAN>)<span class="line-numbers-rows"><span><\/span><span><\/span><span><\/span><span><\/span><span><\/span><span><\/span><\/span><\/CODE><\/PRE><P><\/P><P>次に、スクリプトで使用されるフィーチャレイヤーを読み込みます。スクリプトには資産位置のポイントフィーチャレイヤー、嵐の進路のポリゴンフィーチャレイヤー、およびアラームや脆弱な資産位置として使用される別のポイントレイヤーが必要です。<\/P><P><\/P><P><EM><STRONG>Ninja Pro Tip:<\/STRONG> EsriのLiving Atlasから<A href="http:\/\/www.arcgis.com\/home\/item.html?id=248e7b5827a34b248647afb012c58787" rel="nofollow noopener noreferrer" target="_blank">Active Hurricane live feed<\/A> を嵐の進路として活用しましょう。<\/EM><\/P><PRE class="lia-code-sample line-numbers language-none"><CODE>#assets layer
cellSiteFeatureLayer = gis.content.get('88b5acd4444343b3bdaea40918d070bf')
#storm track layer
hurricaneFeatureLayer = gis.content.get('6c8256c93c0e40debe46d9dcf79d0049')
#alarms layer
warningsFeatureLayer = gis.content.get('6f735776f0c246b1ba602a774dbc1b1d')<span class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span></span>次に、アラームレイヤーから以前のアラームや脆弱な資産を切り捨ててクリアします。
warningsLayer = warningsFeatureLayer.layers[0]
warningsLayer.manager.truncate()<span class="line-numbers-rows"><span></span><span></span></span>
次に、嵐の進路であるポリゴンレイヤーの現在のジオメトリを保存します。これは、その中に含まれる資産をクエリするために使用されます。
hurricaneFeatures = hurricaneFeatureLayer.layers[8]
queryHurricane = hurricaneFeatures.query(where='1=1')
hurricaneGeometry = queryHurricane.features[3].geometry
##print (hurricaneGeometry)
<span class="line-numbers-rows"><span><<EMOJI_18>><\/span><span><<EMOJI_19>><\/span><span><<EMOJI_20>><\/span><span><<EMOJI_21>><\/span></span>
次に、先ほど保存したジオメトリを空間ジオメトリフィルターとして使用し、資産レイヤーでクエリを実行します。
cellSiteFeatures = cellSiteFeatureLayer.layers[0]
warningsResult = cellSiteFeatures.query(where='1=1', out_fields='SiteID', geometry_filter=filters.intersects(hurricaneGeometry))
##print(warningsResult)
<span class="line-numbers-rows"><span><<EMOJI_23>><\/span><span><<EMOJI_24>><\/span><span><<EMOJI_25>><\/span></span>
最後に、クエリによって返されたフィーチャセットを取得し、それらのフィーチャをアラームレイヤーに追加します。
warningsLayer.edit_features(adds=warningsResult)
<span class="line-numbers-rows"><span><<EMOJI_27>><\/span><span><<EMOJI_28>><\/span></span>
これで完了です。結果は嵐の進路内にある資産の新しいポイント位置として表示されます。

このスクリプトは、エンドユーザー向けの体験に応じてさまざまな場所で実行できます。 いくつかのオプションをご紹介します:
- ローカルでご自身のIDE内で
-