Novedades SIG

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Other Boards in This Place


Latest Activity

(9 Posts)
Edison_AndresLopez
Esri Contributor

Cuando se es administrador en una organización de ArcGIS Online hay un tema que siempre es de sumo cuidado y es el consumo de créditos. Recordemos que "los créditos son la moneda que se utiliza en ArcGIS y que se consumen para determinadas transacciones y tipos de almacenamiento como, por ejemplo, almacenar entidades, realizar análisis y utilizar contenido Premium."

Cuando se ingresa a ArcGIS Online y uno se dirige a la pestaña de Organización>Status es normal encontrarnos con una sección donde se muestra un dashboard con el consumo general de créditos y también la opción de generar reportes.

 

Edison_AndresLopez_0-1743401156368.png

 

Para una administración general de una organización estas opciones predispuestas son más que suficientes para tener un conocimiento del consumo de créditos. Pero existen casos como en la cuenta de ArcGIS Online del Semillero en que tenemos usuarios asignados a proyectos específicos y requerimos determinar el consumo de créditos semanal para determinar los costos en esta moneda de dicho proyecto.

Ante esta necesidad y ver que los reportes que genera ArcGIS Online no dan esta precisión, profesionales del semillero crearon un Script en Jupyter Notebook usando la API de ArcGIS para Python para calcular el consumo de créditos de almacenamiento semanal relacionado a un usuario específico y su contenido alojado. 

A continuación les comparto los pasos del scritp para su ejecución:

Edison_AndresLopez_1-1743401999390.pngSe requieren el modulo de ArcGIS para acceder a la cuenta de ArccGIS Online y Pandas para manipular los datos que se van a consultar.

 

Edison_AndresLopez_2-1743402301073.pngSe ingresa el usuario administrador y la url de la organización de ArcGIS Online, se te solicitará ingresar la contraseña de acceso.

 

Edison_AndresLopez_3-1743402659082.pngSe asigna el usuario del cual se desea obtener el consumo de créditos.

Edison_AndresLopez_4-1743402782076.pngSe itera en el contenido del usuario a consultar y por cada item se obtiene el consumo aplicando unas fórmulas.

Edison_AndresLopez_5-1743403042855.pngPor último se crea el DataFrame y se almacena en un archivo Excel como reporte.

Con estos 5 pasos y aplicando la API de ArcGIS para Python es que se logra generar el reporte particular de consumo de créditos semanal de un usuario en particular dentro de una organización de ArcGIS Online.

Para mí es grato compartir con ustedes las herramientas y proyectos que desde el Semillero de Innovación Geográfica de Esri Colombia van siendo construidas gracias al equipo multidisciplinar que lo compone. 

Y por último el código completo:

from arcgis.gis import GIS
import pandas as pd

user = 'your_username'
print("ArcGIS Online")    
gis = GIS("https://your_organization_name.maps.arcgis.com/home",user)
print("Logged in as " + user + " to " + gis.properties.portalName)

#Remplazar el parametro de busqueda por el nombre del usuario deseado.
#Dejar en blanco el parametro si se desea consultar la organización
esri_accounts = gis.users.search('user_to_check')
print(esri_accounts)

data = []
total = 0
for account in esri_accounts:
    my_content = gis.content.search(query="owner:" + account.username, max_items=6000)
    itemsHosted = [item for item in my_content if 'Hosted Service' in item.typeKeywords]
    itemsHosted.sort(key=lambda x: x.size, reverse=True)
    size = 0
    for item in itemsHosted:
        size += (item.size/1000000)
        row = [account.username, item.title, (item.size/1000000), (item.size/1000000)*0.061883]  
        data.append(row)
        print(row)
    row = [account.username, "Total", size, size*0.061883]
    data.append(row)
    print(row)

# Create the pandas DataFrame
df = pd.DataFrame(data, columns=['User', 'Item', 'Size', 'Weekly estimated credits'])
print(df)
#Remplazar la ruta de salida
df.to_excel("D:\Descargas\output_credits.xlsx") 

 

Para mayor información acerca de los créditos visita este enlace: https://doc.arcgis.com/es/arcgis-online/administer/credits.htm 

 

 

 

 

 

 

 

 

more
6 1 94
Joffre_Quinteros
Esri Contributor

¿Qué son los webhooks?

Los webhooks son una forma de comunicación entre aplicaciones que permite enviar notificaciones o datos automáticamente cuando ocurre un evento específico.En el contexto de ArcGIS Online, los webhooks pueden activarse cuando se crean, actualizan o eliminan elementos, lo que permite integraciones automatizadas con otras plataformas, como Microsoft Teams.

Escenario

Supongamos que tenemos un tablero de control en donde tenemos embebido un formulario de Survey123 que nos permite realizar la asignación de una actividad a un usuario en especifico y queremos que el usuario reciba la notificacion de la asignación a través de  Microsoft Teams.

¿Qué necesito para lograrlo?

La creación de los webhooks se puede hacer a través del uso de aplicaciones de terceros. Entre los mas usados tenemos Microsoft Power Automate, Zapier o Make. Y ArcGIS ya tiene conectores de webhooks preestablecidos para aplicativos como Survey123 y Quick Capture. Para resolver el escenario se va a utilizar Power Automate y ArcGIS Online.

Flujo de trabajo y explicación

Joffre_Quinteros_0-1740170292649.png

1. Tenemos un formulario de Survey123 llamado Actividades GIS y desde Power Automate se crea el conector y se crea el webhook para que cada vez que se envíe el formulario se active el flujo.

2. Vamo a trabajar con 3 personas por lo que creamos un condicional para que cada vez que se envie al usuario1 caso contrario entra al siguiente condicional si es para el usuario 2 se ejecuta sino continua, y asi sucesivamente

3. Se utiliza el componente Publicar tarjeta en un canal o chat para establecer la notificacion

4. Se revisa las notificaciones en microsoft Teams y se puede abrir el hipervinculo a un producto de ArcGIS ya sea en la web o dentro de Teams.

¿Cual es el paso a paso?

1. Para este escenario tenemos ya creado un formulario de Survey123 que esta embebido en un tablero de control que nos sirve para asignar tareas. Nota: Si quiere mas información de este flujo se implemento usando el solucion de GIS Request Management)

Joffre_Quinteros_0-1740171061024.png

2. Ahora nos dirigimos a Power Automate y seleccionamos plantillas. En el buscador escribimos Survey123 y seleccionamos la primera opción de enviar un correo electrónico (esta es una plantilla, posteriormente se modificará)

Joffre_Quinteros_1-1740171223965.png

Nota: Dar los permisos necesarios para trabajar

3. Se procede a eliminar el conector llamado "Send a Email" ya que no vamos a usarlo.

4. Dar clic en el elemento llamado When a survey response is submitted para proceder a configurarlo. La clave es dejarle en Sí en incluir informacion de la encuesta y en la lista desplegable seleccionar el nombre de la encuesta. 

Joffre_Quinteros_2-1740171448888.png

Ojo, si no aparece el nombre de la encuesta colocar el ID de la encuesta que se encuentra en la url.

Joffre_Quinteros_3-1740171589316.png

5. Se procede a dar clic en el más y se selecciona condición 

Joffre_Quinteros_4-1740171733107.png

y en la configuración se procede a colocar los campos provenientes del formulario en este caso debe cumplir con los dos criterios la primera es que este asignado y la segunda es el nombre de la persona a la que se quiere asignar en este caso mi nombre 

Joffre_Quinteros_5-1740171821277.png

6. Ahora si vamos a crear la condicion para verdadero. En este caso damos clic en más y se sugiere buscar en los elementos la opcion de Microsoft Teams (no hacerlo por busqueda de nombre que no aparecen todas las opciones) y buscamos la opción de publicar tarjeta en un chat o canal

Joffre_Quinteros_6-1740172080328.png

7. Para la configuración del elemento tenemos lo siguiente: Seleccionamos Bot de flow para que este vinculado a un bot. Para poder personalizar el mensaje a través de una tarjeta se usó un jason que esta detallado a continuación:

Joffre_Quinteros_7-1740172137872.png

Lo que hace el Script es la creación de una tarjeta en .json y hay 4 puntos claves:

En la línea 15 se trae el atributo del survey123 nombre de la persona asignada

En la línea 23 se trae el atributo del survey123 con la urgencia

En la línea 27 se trae el atributo del survey123 del tiempo estimado 

En la línea 43 se incluye la url de un tablero de control para que puedan ver las asignaciones y progresos. Se puede colocar solamente la url para que se abra en un navegador. En este caso esta configurado para que se despliegue en tablero de control dentro del mismo Teams a través del plugin de ArcGIS para Teams. ¡No te parece fantástico!

 

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "1.4",
  "body": [
    {
      "type": "TextBlock",
      "text": "Nueva Asignación",
      "weight": "Bolder",
      "size": "Large",
      "color": "Accent"
    },
    {
      "type": "TextBlock",
      "text": "Se ha creado una nueva asignación asignada a: **@{triggerOutputs()?['body/feature/attributes/businessunit']}**.",
      "wrap": true
    },
    {
      "type": "FactSet",
      "facts": [
        {
          "title": "Importancia Alta:",
          "value": "@{triggerOutputs()?['body/feature/attributes/urgent']}"
        },
        {
          "title": "Tiempo estimado (horas):",
          "value": "@{triggerOutputs()?['body/feature/attributes/plannedeffort']}"
        }
      ]
    },
    {
      "type": "TextBlock",
      "text": "Por favor, revisa el siguiente tablero para más detalles.",
      "wrap": true
    },
    {
      "type": "ActionSet",
      "actions": [
        {
          "type": "Action.OpenUrl",
          "title": "Abrir Tablero en ArcGIS for Teams",
          "url": "https://teams.microsoft.com/l/entity/ba4eda44-cd55-4e15-855c-0debafb0490b/viewer?context=%7B%22subEntityId%22:%22itemId---866de69cbad64b4b9046b81102f86390___itemSubTypes---Dashboard___isAGOLPublicItem---false%22%7D"
        }
      ]
    }
  ]
}

 

8. Y en falso se coloca nuevamente el paso 5 al 7 pero se cambia la persona a la que se asigna en el condicional.

9. Se procede a guardar y ejecutar y ahora es tiempo de ¡ponerlo en acción!

Resultados

Desde el tablero de control usando el Survey123 se envía la asignacion con el nombre y el estado 

Joffre_Quinteros_8-1740172682922.png

Joffre_Quinteros_9-1740172710640.png

En power Automate podemos validar que se ha ejecutado correctamente

Joffre_Quinteros_10-1740172787918.png

Podemos ver como en Microsoft Teams nos llega la notificación

Joffre_Quinteros_11-1740172890601.png

Y si damos clic en Abrir tablero en ArcGIS for Teams podemos visualizar el tablero de control dentro de Teams

Joffre_Quinteros_12-1740172984691.png

¡Ahora es momento de ponerlo a prueba!

 

 

more
1 0 135
Joffre_Quinteros
Esri Contributor

Service Object Interceptors (SOI): El superpoder oculto de ArcGIS Server

Read more...

more
1 0 181
XanderBakker
Esri Esteemed Contributor

En este blog se comparte un ejemplo de cómo se pueden procesar datos obtenidos con una pregunta de selección múltiple en Survey123 usando una expresión de datos en Arcade.

Read more...

more
5 3 768
XanderBakker
Esri Esteemed Contributor

En este blog compartiremos ejemplos de realizar análisis con Arcade y luego usar los datos para crear un gráfico en la ventana emergente de un mapa web.

Read more...

more
4 0 427
XanderBakker
Esri Esteemed Contributor

En este blog compartiremos un ejemplo de realizar un análisis con Arcade para crear visualizaciones atractivas en la ventana emergente de un mapa web.

Read more...

more
2 0 344
XanderBakker
Esri Esteemed Contributor

En este blog compartiremos un ejemplo de Arcade para crear visualizaciones atractivas en la ventana emergente de un mapa web.

Read more...

more
3 0 399
XanderBakker
Esri Esteemed Contributor

Hace poco fueron introducidos nuevos tipos de campos nuevos como la de DateOnly (fecha solamente). Con la actualización de ArcGIS Online esta semana ArcGIS Dashboards todavía no reconoce estos campos y no permite crear visualización con este nuevo campo.

En este blog compartiremos una manera para usar estos datos en el tablero aprovechando las expresiones de datos con Arcade. 

Read more...

more
2 1 563
SimonMarin
Esri Contributor

Actualización de registros entre capas de entidades en ArcGIS Pro

Read more...

more
2 3 780
42 Subscribers