Más

¿Existe una función Log o Ln en QGIS Field Calculator?


Parece que no puedo encontrar ninguna forma de tomar el logaritmo (natural o base 10) de un campo en QGIS. He llegado a la calculadora de campo pero no hay un botón para el registro y parece que no puedo encontrar ninguna fórmula que funcione.

Estoy usando 1.4.0 en Linux actualmente. No pude encontrar nada en las notas de la versión sobre esto que se agregó desde entonces, pero ¿alguien sabe si se trata de una versión más reciente?

¡Muchas gracias!


Como solución a la falta de esto en QGIS, puede abrir el archivo .dbf de su conjunto de shapefile (exportarlo a shapefile primero si está usando un formato diferente) y abrirlo en Libre Office Calc (o openoffice, MS Excel 97 / 2003) para calcular el campo en una nueva columna con una de las siguientes fórmulas:

= LOG (Número, Base) = LOG10 (Número) = LN (Número)

Puede usar prácticamente todas las funciones de la hoja de cálculo de esta manera siempre que el recuento de funciones no llegue a millones y no reordene ni elimine ninguna fila.

Asegúrese de que el encabezado de la columna sea compatible con DBF

  1. Nombre de campo (10 caracteres como máximo)
  2. tipo de datos (probablemente N para números o C para cadenas de caracteres)
  3. longitud del campo (incluidos los decimales)
  4. número de decimales (opcional para N)

Ejemplo:

VALUE_LOG, N, 24,12

Haga una copia de seguridad del .dbf original antes de realizar cualquier guardado y guarde / reemplace el abierto como un archivo dBase (.dbf).

Un .dbf solo puede abrirse para ser editado por un programa a la vez, así que asegúrese de descargar el shapefile primero en qgis antes de cargarlo en calc y viceversa.


Funciones solicitadas agregadas a QGIS

http://hub.qgis.org/issues/4365#note-1

Así es como funciona (el proyecto QGIS) ... solo pregunte, si tiene sentido, probablemente se agregará en poco tiempo;)


Esta es la lista de funciones reales admitidas por la calculadora de campo QGIS.

Si encuentra que falta algo obvio, como la función de registro, presente un ticket de solicitud de función en el rastreador de errores de QGIS, por ejemplo

http://hub.qgis.org/issues/4365

Funciones de la calculadora de campo QGIS:

'cadena' valor de cadena literal

numero numero

NULL valor nulo

sqrt (a) raíz cuadrada

pecado (a) seno de un

cos (a) cosino de b

tan (a) tangenos de un

asin (a) arcussinus de un

acos (a) arcuscosinus de un

atan (a) arcustangens de un

a int (a) convertir la cadena a en entero

a real (a) convertir la cadena a en real

a cadena (a) convertir el número a en cadena

minúscula (a) convierte la cadena a en minúsculas

superior (a) convierte la cadena a en mayúsculas

longitud (a) longitud de la cuerda a

atan2 (y, x) arcustangens de y / x usando los signos de los dos argumentos para determinar el cuadrante del resultado.

reemplazar (a, reemplazar esto, con eso) reemplazar reemplazar esto con eso en la cadena a

regexp_replace (a, replacethis, withthat) reemplazar la expresión regular replacethis con withthat en la cadena

substr (a, from, len) len caracteres de la cadena a comenzando desde (el primer índice de caracteres es 1)

a || b concatenar cadenas ayb

$ número de rownum fila actual

$ área área del polígono

$ perímetro perímetro del polígono

$ área de longitud de la línea

$ id id de función

$ x x coordenada del punto

$ y y coordenada del punto

xat (n) x coordenada del n-ésimo punto de una línea (indica que comienza en 0; los valores negativos se aplican al último índice)

yat (n) y coordenada del n-ésimo punto de una línea (los índices comienzan en 0; los valores negativos se aplican al último índice)

a ^ b a elevado a la potencia de b

a * b a multiplicado por b

a / b a dividido por b

a + b a más b

a - b a menos b

+ un signo positivo

-un valor negativo de a


Sospecho que va a ser difícil porque tienes que escribir código Python.

Puede escribir un complemento de Python donde pueda acceder a la tabla de atributos y usar cualquier función de Python que desee para establecer un valor de atributo.

O, en lugar de escribir un complemento, puede ejecutar el código directamente en la consola de Python. Esto debería ahorrarle algo de tiempo, pero si necesita ejecutar esta función repetidamente, un complemento es más eficiente a largo plazo.

Este es un enlace a la sección sobre cómo acceder a las tablas de atributos del tutorial sobre complementos de Python. Esta es la documentación para la función de registro en Python.


Ahora hay una ln (función de registro natural) que se puede usar en la calculadora de campo como se indica en los documentos


Estoy usando qgis 1.7 y parece que no hay una función de registro en el campo de expresión.

Puedes probar a utilizar gvSIG. Tiene logaritmo natural en su campo de expresión.


Ver el vídeo: Why You Shouldnt Learn Python In 2021 (Septiembre 2021).