Cada vez que se ejecute una herramienta en una secuencia de comandos, se necesita una licencia de ArcGIS. Las herramientas de las extensiones de ArcGIS, como Extensión ArcGIS Spatial Analyst, requieren una licencia adicional para esa extensión. Si las licencias necesarias no están disponibles, la herramienta falla y arroja mensajes de error. Por ejemplo, si instala con una licencia de ArcGIS Desktop Basic e intenta ejecutar una herramienta que requiere una licencia de Desktop Standard o Desktop Advanced, la herramienta fallará.
Cuando se usa una licencia de ArcGIS Desktop Basic o Desktop Standard, una secuencia de comandos debe establecer el producto en Desktop Basic o Desktop Standard. De la misma manera, una secuencia de comandos deberá establecer el producto en Engine o EngineGeoDB al utilizar una licencia de Engine o de EngineGeoDB. Si no se establece una licencia de manera explícita, la primera vez que se acceda a una herramienta, función o clase ArcPy se inicializará la licencia según el nivel de licencia más alto disponible.
Cada herramienta realiza verificaciones para asegurarse de que tiene la licencia apropiada. Si no tiene las licencias requeridas, falla. Para evitar la situación de ejecutar una parte y que falle, puede realizar una verificación en la parte superior de la secuencia de comandos y que falle inmediatamente.
Licencias Desktop, Engine/Server
Los módulos del producto se importan antes de importar arcpy para definir la licencia de escritorio utilizada por una secuencia de comandos. La función CheckProduct se puede utilizar para verificar la disponibilidad de las licencias de escritorio, mientras que la función ProductInfo indica cuál es la licencia actual del producto.
Licencias de extensión
Las licencias de las extensiones se pueden obtener de un administrador de licencias para devolverlas cuando ya no se necesiten. CheckExtension se usa para ver si una licencia está disponible para un tipo de extensión concreta, mientras que CheckOutExtension obtiene de hecho la licencia. Una vez que la secuencia de comandos recuperó la licencia de extensión, se pueden ejecutar las herramientas de extensión. Una vez que se realiza una secuencia de comandos con las herramientas de una extensión en particular, se debe utilizar la función CheckInExtension para devolver la licencia al administrador de licencias con el fin de que otras aplicaciones puedan utilizarla. Todas las licencias de extensión a las que se realizó el check-out y las licencias de productos establecidas se devuelven al administrador de licencias cuando se completa una secuencia de comandos.
En el siguiente ejemplo se ejecutan algunas herramientas de ArcGIS 3D Analyst y se establece la licencia de producto de escritorio de ArcGIS Desktop Basic, ya que no se requiere una licencia de ArcGIS Desktop Advanced para ejecutar las herramientas desde una extensión. La secuencia de comandos fallará si la licencia de ArcGIS Desktop Basic no se establece de manera explícita y no hay una licencia de ArcGIS Desktop Advanced disponible, ya que se requiere una licencia de escritorio para ejecutar las herramientas de extensión.
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 Extensión ArcGIS 3D Analyst
#
arcpy.CheckInExtension("3D")
En el ejemplo anterior, se realiza el check-in de Extensión ArcGIS 3D Analyst en una cláusula finally, lo que garantiza que siempre se vuelve a realizar el check-in de la extensión, independientemente de que se haya producido o no una excepción.
Un valor devuelto de Failed, Unavailable o NotLicensed indica que no se ha podido aplicar un check-out a la extensión.
A continuación se presentan los nombres de las extensiones y los nombres de sus códigos de extensión:
Extensión | Código de la extensión |
---|---|
Extensión ArcGIS 3D Analyst | 3D |
Extensión ArcGIS Data Interoperability para Desktop | DataInteroperability |
ArcGIS Data Reviewer for Desktop | Datareviewer |
ArcGIS para aviación: aeropuertos | Aeropuertos |
ArcGIS for Aviation: Cartografía | Aeronáutica |
ArcGIS for Maritime: Batimetría | Batimetría |
ArcGIS for Maritime: Cartografía | Náuticas |
Extensión ArcGIS Geostatistical Analyst | GeoStats |
Extensión ArcGIS Network Analyst | Red |
Extensión ArcGIS Spatial Analyst | Espacial |
Extensión ArcGIS Schematics | Schematics |
Extensión ArcGIS Tracking Analyst | Tracking |
ArcGIS Workflow Manager for Desktop | JTX |
ArcScan | ArcScan |
Business Analyst | Negocio |
Esri Defense Mapping | Defensa |
Esri Production Mapping | Fundación |
Esri Roads and Highways | Carreteras |
StreetMap | StreetMap |
Nombres de código de producto
Códigos del producto |
---|
ArcView (equivalente a una licencia de ArcGIS Desktop Basic) |
ArcEditor (equivalente a una licencia de ArcGIS Desktop Standard) |
ArcInfo (equivalente a una licencia de ArcGIS Desktop Advanced) |
Engine |
EngineGeoDB |
ArcServer |
Funciones de licencias
Función | Explicación | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CheckExtension(extensión) | Verifica si una licencia está disponible para que se realice el check-out para un tipo de extensión específico.
| ||||||||||||||||
CheckInExtension(extensión) | Devuelve la licencia de modo que otras aplicaciones puedan utilizarla.
| ||||||||||||||||
CheckOutExtension(extensión) | Recupera la licencia.
| ||||||||||||||||
CheckProduct(código) | Verifica si la licencia solicitada está disponible.
| ||||||||||||||||
ProductInfo() | Devuelve la licencia de producto actual.
| ||||||||||||||||
SetProduct(código) | Define la licencia de escritorio.
|