ArcGIS Python API<\/A> et peut être exécuté manuellement ou automatiquement depuis diverses sources, que je couvrirai plus tard. Le script nécessite également que vos emplacements d'assets soient dans une couche d'entités au sein de votre portail GIS, ainsi qu'une couche d'entités polygones utilisée comme trajectoire de tempête, et une couche pour ajouter vos alarmes ou assets vulnérables. Le script est joint ci-dessous, mais décomposons-le d'abord.<\/P><\/P>
Premièrement, importez les bibliothèques python ArcGIS nécessaires et authentifiez-vous dans votre portail GIS. Puisque ce script utilise des couches d'entités, nous utiliserons principalement le module 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="punctuation token">(<\/SPAN><SPAN class="string token">"https:\/\/your.portal.here\/"<\/SPAN><SPAN class="punctuation token">,<\/SPAN> <SPAN class="string token">'username'<\/SPAN><SPAN class="punctuation token">,<\/SPAN> <SPAN class="string token">'password'<\/SPAN><SPAN class="punctuation token">)<\/SPAN><SPAN class="line-numbers-rows"><SPAN><\/><SPAN><\/><SPAN><\/><SPAN><\/><SPAN><\/><SPAN><\/><\/><\/><CODE></PRE><P><\/P><P>Puis nous chargerons les couches d'entités utilisées dans le script. Le script nécessite une couche d'entités points de vos emplacements d'assets, une couche d'entités polygones de la trajectoire de votre tempête, et une autre couche points utilisée comme alarmes ou emplacements de vos assets vulnérables.<\/P><P><\/P><P><EM><STRONG>Astuce Ninja Pro : <\/STRONG> Utilisez le <A href="http:\/\/www.arcgis.com\/home\/item.html?id=248e7b5827a34b248647afb012c58787" rel="nofollow noopener noreferrer" target="_blank">flux en direct Active Hurricane<\/A> de l'Atlas vivant d'Esri comme votre trajectoire de tempête.<\/EM><\/P><PRE class="lia-code-sample line-numbers language-none"><CODE><SPAN class="comment token">#couche assets<\/SPAN>
cellSiteFeatureLayer <SPAN class="operator token">=<\/SPAN> gis<SPAN class="punctuation token">.<\/SPAN>content<SPAN class="punctuation token">.<\/SPAN>get<SPAN class="punctuation token">(<\/SPAN><SPAN class="string token">'88b5acd4444343b3bdaea40918d070bf'<\/SPAN><SPAnclass= "punctuation token ">)<\/>\n<spanclass= "commenttoken ">#couche trajectoire tempête</span >
hurricaneFeatureLayer <spanclass= "operatortoken ">=<\/> gis<punctuationtoken >.<\/>content<punctuationtoken >.<\/>get<punctuationtoken >(<\/> <spanclass= "stringtoken ">'6c8256c93c0e40debe46d9dcf79d0049'<\/> )
<spanclass= "commenttoken ">#couche alarmes</span >
warningsFeatureLayer <spanclass= "operatortoken ">=<\/> gis<punctuationtoken >.<\/>content<punctuationtoken >.<\/>get<punctuationtoken >(<\/> <spanclass= "stringtoken ">'6f735776f0c246b1ba602a774dbc1b1d'<\/> )
Puis, nous tronquerons et effacerons les alarmes précédentes et les assets vulnérables des couches d'alarmes.<\/P>
warningsLayer <spanclass= "operatortoken ">=<\/> warningsFeatureLayer<punctuationtoken >.<\/>layers[0]
warningsLayer<punctuationtoken >.<\/>manager<punctuationtoken >.<\/>truncate()<spanclass= "line-numbers-rows"><span ><EMOJI_14></span ><span ><EMOJI_15></span ><span ><EMOJI_16></span ></span >
Puis, nous stockerons la géométrie actuelle de la couche polygone ou la trajectoire de la tempête qui sera utilisée pour interroger les assets qui s'y trouvent.<\/P>
hurricaneFeatures <spanclass= "operatortoken ">=<\/> hurricaneFeatureLayer<punctuationtoken >.<\/>layers[8]
queryHurricane <spanclass= "operatortoken ">=<\/> hurricaneFeatures<punctuationtoken >.<\/>query(where='1=1')
hurricaneGeometry <spanclass= "operatortoken ">=<\/> queryHurricane<punctuationtoken >.<\/>features[3].geometry
<spanclass= "commenttoken ">##print (hurricaneGeometry)<<EMOJI_17></span >
Maintenant, nous utiliserons la géométrie que nous venons de stocker comme filtre spatial pour notre requête sur la couche des assets.<\/P>
cellSiteFeatures <spanclass= "operatortoken ">=<\/> cellSiteFeatureLayer<punctuationtoken >.<\/>layers[0]
warningsResult <spanclass= "operatortoken ">=<\/> cellSiteFeatures<punctuationtoken >.<\/>query(where='1=1', out_fields='SiteID', geometry_filter=filters.intersects(hurricaneGeometry))
<spanclass= "commenttoken ">##print(warningsResult)<<EMOJI_22></span >
Enfin, prenez l'ensemble des entités retourné par la requête et ajoutez les entités à la couche d'alarmes.<\/P>
warningsLayer<punctuationtoken >.<\/>edit_features(adds=warningsResult)
Et voilà. Le résultat est de nouveaux emplacements points vous montrant où les assets se trouvent dans une trajectoire de tempête.<\/P>
<\/P>

<\/P>
Le script peut être exécuté à divers endroits selon l'expérience que vous souhaitez offrir à l'utilisateur final. Voici quelques options:<\/P>
- Localement dans votre propre IDE<\/LI>
- Dans