Chaque fois qu’un outil est exécuté dans un script, une licence ArcGIS est requise. Les outils des extensions ArcGIS, tels que l'Extension ArcGIS Spatial Analyst, nécessitent une licence supplémentaire pour cette extension. Si les licences requises ne sont pas disponibles, un outil échoue et renvoie des messages d'erreur. Par exemple, si vous effectuez l'installation avec une licence ArcGIS Desktop Basic et que vous essayez d'exécuter un outil nécessitant une licence Desktop Standard ou Desktop Advanced, l'outil échoue.
Lors de l'utilisation d'une licence ArcGIS Desktop Basic ou Desktop Standard, un script doit définir le produit sur Desktop Basic ou Desktop Standard. De même, lors de l'utilisation d'une licence Engine ou EngineGeoDB, un script doit définir le produit sur Engine ou EngineGeoDB. Si aucune licence n'est spécifiée explicitement, elle est initialisée en fonction du niveau de licence disponible le plus élevé lors du premier accès à un outil, une fonction ou une classe ArcPy.
Chaque outil vérifie la présence de la licence appropriée. S'il ne dispose pas des éléments nécessaires, il échoue. Pour vous protéger contre une exécution partielle suivie d'un échec, effectuez une vérification en début de script pour échouer immédiatement.
Licences Desktop, Engine/Server
Les modules de produit sont importés avant l'importation d'arcpy pour définir la licence bureautique utilisée par un script. La fonction CheckProduct permet de vérifier la disponibilité des licences bureautiques, tandis que la fonction ProductInfo indique la licence de produit actuelle.
Licences d'extensions
Les licences des extensions peuvent être récupérées à partir d'un gestionnaire de licences et renvoyées lorsqu'elles ne sont plus utiles. CheckExtension permet de vérifier si une licence est disponible pour être utilisée avec un type d'extension spécifique, tandis que CheckOutExtension effectue l'extraction de la licence. Lorsque la licence de l'extension a été extraite par le script, les outils de l'extension peuvent être exécutés. Lorsqu'un script a terminé l'utilisation des outils d'une extension particulière, la fonction CheckInExtension doit être utilisée pour restituer la licence au gestionnaire de licence afin de permettre à d'autres applications de l'utiliser. Toutes les licences d'extension extraites et les licences de produit définies sont renvoyées au gestionnaire de licences lorsqu'un script est terminé.
L'exemple suivant exécute certains outils ArcGIS 3D Analyst et définit la licence de produit sur ArcGIS Desktop Basic, car aucune licence ArcGIS Desktop Advanced n'est requise pour exécuter des outils à partir d'une extension. Le script échoue si la licence ArcGIS Desktop Basic n'est pas définie de façon explicite et si aucune licence ArcGIS Desktop Advanced n'est disponible, car une licence bureautique est nécessaire pour exécuter les outils de l'extension.
class LicenseError(Exception):
pass
# Set desktop license used to Basic (keyword is arcview)
#
import arcview
import arcpy
try:
if arcpy.CheckExtension("3D") == "Available":
arcpy.CheckOutExtension("3D")
else:
# Raise a custom exception
#
raise LicenseError
arcpy.env.workspace = "D:/GrosMorne"
arcpy.HillShade_3d("WesternBrook", "westbrook_hill", 300)
arcpy.Aspect_3d("WesternBrook", "westbrook_aspect")
except LicenseError:
print("3D Analyst license is unavailable")
except arcpy.ExecuteError:
print(arcpy.GetMessages(2))
finally:
# Check in the Extension ArcGIS 3D Analyst
#
arcpy.CheckInExtension("3D")
Dans l'exemple ci-dessus, l'Extension ArcGIS 3D Analyst est insérée selon une clause finally, ce qui signifie qu'elle est toujours réinsérée, qu'une exception se produise ou pas.
Les valeurs renvoyées Failed, Unavailable ou NotLicensed indiquent que l'utilisation de l'extension n'a pas réussi.
Vous trouverez ci-dessous les noms des extensions et leurs noms de code d'extension :
Extension | Code extension |
---|---|
Extension ArcGIS 3D Analyst | 3D |
Extension ArcGIS Data Interoperability for Desktop | DataInteroperability |
ArcGIS Data Reviewer for Desktop | Datareviewer |
ArcGIS for Aviation : Aéroports | Aéroports |
ArcGIS for Aviation : Création de diagrammes | Aeronautical |
ArcGIS for Maritime : Bathymétrie | bathymétrie |
ArcGIS for Maritime : Création de diagrammes | Nautical |
Extension ArcGIS Geostatistical Analyst | GeoStats |
Extension ArcGIS Network Analyst | Réseau |
Extension ArcGIS Spatial Analyst | Spatial |
Extension ArcGIS Schematics | Schematics |
Extension ArcGIS Tracking Analyst | Suivi |
ArcGIS Workflow Manager for Desktop | JTX |
ArcScan | ArcScan |
Business Analyst | Affaires |
Esri Defense Mapping | Défense |
Esri Production Mapping | Foundation |
Esri Roads and Highways | Autoroutes |
StreetMap | StreetMap |
Noms de code de produit
Codes produit |
---|
ArcView (équivalent d'une licence ArcGIS Desktop Basic) |
ArcEditor (équivalent d'une licence ArcGIS Desktop Standard) |
ArcInfo (équivalent d'une licence ArcGIS Desktop Advanced) |
Engine |
EngineGeoDB |
ArcServer |
Fonctions de gestion des licences
Fonction | Explication | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CheckExtension(extension) | Permet de vérifier si une licence disponible peut être utilisée pour un type d'extension spécifique.
| ||||||||||||||||
CheckInExtension(extension) | Renvoie la licence pour que d'autres applications puissent l'utiliser.
| ||||||||||||||||
CheckOutExtension(extension) | Récupère la licence.
| ||||||||||||||||
CheckProduct(code) | Vérifie si la licence demandée est disponible.
| ||||||||||||||||
ProductInfo() | Indique la licence du produit courant.
| ||||||||||||||||
SetProduct(code) | Définit la licence bureautique.
|