[QGIS-es] Ayuda para codifica 10000 entidades
Gabriel De Luca
pablogabrieldeluca en gmail.com
Jue Mar 9 11:10:54 PST 2023
Buenos días. No es exactamente un lenguaje de programación, es una
expresión de QGIS. La documentación no la encuentro en castellano, pero en
inglés está en:
https://docs.qgis.org/3.28/en/docs/user_manual/expressions/expression.html.
Para muchas cosas es bueno tener un campo identificador único. Tal es así
que GDAL guarda, aunque no lo tengas, un identificador único para cada
objeto, al cual se puede acceder con la expresión $id. Si tuvieras un campo
identificador, mejor reemplazas $id por "nombre_del_campo_identificador" en
la siguiente expresión:
"ID_POL_ESP" ||
'PI' ||
lpad(
array_find(
array_agg( $id, "ID_POL_ESP"),
$id),
5, 0)
Lo único que estoy modificando es el primer argumento de lpad: en vez de
enviarle el @row_number + 60, le estoy pidiendo que encuentre en una lista
de identificadores agrupados por ID_POL_ESP, el identificador del objeto
actual, y devuelva su ubicación en esa lista (llamada array por QGIS).
Eso hace que para cada grupo de ID_POL_ESP, cada identificador asuma una
posición desde el 0 en adelante, y sobre esa posición (llamada índice) se
hace el lpad llenando con ceros a la izquierda hasta cinco lugares.
Atte,
Gabriel
El jue, 9 mar 2023 a la(s) 10:22, Sig nos (signos.anc en gmail.com) escribió:
> Buenos días compañeros, soy nueva y bastante inexperta, sin embargo,
> tengo una labor apoteósica que emprender, necesito generar más de 14000
> códigos para entidades vectoriales en la capa de atributos, yo empecé
> manual, pero alguien me ayudo a construir un código para usar en Qgis
> "ID_POL_ESP" || 'PI' || lpad ( @row_number+60,5,0) , este código me
> permite tomar de la columna de polígonos específicos los códigos de dichas
> entidades, concatenar una sigla de texto y luego concatenar una formula que
> me permite generar un incremento desde cualquier valor inicial rellenando
> con ceros a la izquierda el número hasta completar una cifra de cinco
> caracteres, sin embargo, necesito que cada vez que el código de polígono
> especifico cambie, el incremento vuelva a reiniciar desde 0, compañeros de
> verdad cualquier idea para mi es muy importante, soy terrible en
> programación ni siquiera sé que lenguaje es ese, intente replicar esta
> sentencia en arcmap y no encontré ni el lpad ni el (@row_number), también
> intente hacerlo en exell con marcos, pero jajaja me quede hasta las tres de
> la mañana y ni siquiera logre que pusiera los números a la izquierda, hasta
> entonces seguiré manual, pero si alguien me salva la patria le amaría.
> _______________________________________________
> QGIS-es mailing list
> QGIS-es en lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/qgis-es
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.osgeo.org/pipermail/qgis-es/attachments/20230309/88781c11/attachment.htm>
Más información sobre la lista de distribución QGIS-es