Cómo funciona Estadísticas focalizadas

La herramienta Estadísticas focalizadas realiza una operación que calcula una estadística para las celdas de entrada dentro de un conjunto de ventanas o vecindades superpuestas. La estadística (por ejemplo, valor medio, máximo o suma) se calcula para todas las celdas de entrada contenidas en cada vecindad.

Procesamiento de vecindades

Conceptualmente, el algoritmo visita cada celda del ráster de entrada y calcula una estadística para las celdas que se encuentran dentro de la forma de vecindad especificada alrededor de ella. La celda para la cual se calcula la estadística se denomina la celda de procesamiento. El valor de la celda de procesamiento suele incluirse en el cálculo de las estadísticas de vecindario, pero dependiendo de la forma de vecindad, podría no ser así. Dado que las vecindades se solaparán en el proceso de escaneo, las celdas de entrada que se incluyan en el cálculo de una celda de procesamiento podrían quedar reflejados también en el cálculo de otra celda de procesamiento.

Existen varias formas de vecindad predefinidas disponibles entre las que elegir. También puede crear una forma personalizada. Las estadísticas que puede calcular para una vecindad son: mayoría, máximo, valor medio, mediana, mínimo, minoría, percentil, rango, desviación estándar, suma y variedad.

Cálculos de ejemplo

Para ejemplificar el procesamiento de vecindad para Estadísticas focalizadas, considere calcular una estadística de suma de la vecindad en torno a la celda de procesamiento con el valor de 5 en el siguiente diagrama. Se especifica una forma de vecindad de celda rectangular de 3 por 3 y el parámetro Ignorar NoData en los cálculos se deja con el valor activado predeterminado. La suma de los valores de las celdas vecinas (3 + 2 + 3 + 4 + 2 + 1 + 4 = 19) más el valor de la celda de procesamiento (5) equivale a 24 (19 + 5 = 24). La celda recibe un valor de 24 en el ráster de salida en la misma ubicación que la celda de procesamiento en el ráster de entrada.

Se muestran los valores de entrada para un ejemplo de vecindad de celda de 3x3 y el valor de suma de salida para la celda de procesamiento

El diagrama anterior muestra cómo se realizan los cálculos en una única celda del ráster de entrada. En el siguiente diagrama, se muestran los resultados para todas las celdas de entrada. Las celdas resaltadas en color amarillo identifican la misma celda de procesamiento y la vecindad como en el ejemplo anterior.

Se muestran todos los valores de entrada y salida de una operación de suma focalizada

Celdas NoData

El parámetro Ignorar los NoData en cálculos controla cómo se procesan las celdas NoData dentro de la ventana de vecindad. Cuando este parámetro está activado (ignore_nodata = "DATA" en Python), cualquier celda de la vecindad que sea NoData se ignora en el cálculo del valor de salida de la celda de procesamiento. Al desactivarlo (ignore_nodata = "NODATA" en Python), si cualquier celda de la vecindad es NoData, el valor de salida de la celda de procesamiento será NoData.

Si la celda de procesamiento en sí es NoData, con la opción Ignorar NoData en los cálculos seleccionada, el valor de salida para la celda se calcula en función de las otras celdas en la vecindad que tengan un valor válido. Si todas las celdas de la vecindad son NoData, la salida será NoData.

Celdas de esquina y de borde

Cuando la celda de procesamiento está cerca de las esquinas y los bordes de la trama de entrada, el número de celdas que se incluyen en la vecindad se ajusta en consecuencia. El cálculo de la estadística también se ajusta.

Los siguientes diagramas ilustran cómo se calcula la estadística de salida para cada celda de procesamiento a partir de las celdas disponibles en cada vecindad individual. El proceso comienza en la esquina superior izquierda del ráster de entrada y escanea de izquierda a derecha cada fila antes de pasar a la siguiente. La vecindad utilizada en este ejemplo es un rectángulo de 3 por 3 celdas, y la estadística utilizada es la suma. El parámetro Ignorar NoData en los cálculos se deja con el valor activado predeterminado. En los diagramas, la vecindad se representa con un contorno en amarillo y la celda de procesamiento en cian.

En el caso de la primera celda de procesamiento, debido a que se encuentra en la esquina superior izquierda del ráster de entrada de 6 por 6 celdas, solo se dispone de cuatro celdas posibles en la vecindad. Si se suman estos valores, se asigna al valor de salida de la primera celda un valor de 11. Para la siguiente celda a la derecha, ahora existen seis celdas en la vecindad, y se calcula la suma para ellas. El escaneo recorre todas las celdas de la primera fila. Para ahorrar espacio, no se muestran todas las celdas de procesamiento.

La vecindad alrededor de cada celda de procesamiento para la primera fila de celdas de entrada se resalta para identificar qué celdas de entrada se utilizarán para calcular el valor de la celda de salida.
La vecindad (con contorno en amarillo) alrededor de cada celda de procesamiento (con contorno en cian) identifica qué celdas de entrada (arriba) se utilizarán para calcular el valor estadístico de salida (abajo).

Observe que, en la primera fila, para la tercera celda de procesamiento desde la izquierda (valor = 1), una de las celdas de entrada tiene un valor de NoData. Dado que la herramienta se configuró para ignorar los NoData, esa celda en particular no se tendrá en cuenta en los cálculos. Si la estadística que se desea calcular se hubiera establecido como Media en lugar de Suma, se calcularía como la suma de todas las celdas de la vecindad que no son NoData, dividida entre 5.

Para la segunda fila de celdas de entrada, la estadística de la primera celda de procesamiento se calculará partiendo de que existan seis celdas disponibles en la vecindad. Para la siguiente celda de procesamiento, habrá nueve celdas que considerar en el cálculo. Para la celda siguiente, existirán ocho valores de entrada que incluir en el cálculo, ya que una de las celdas de la vecindad de 3 por 3 es NoData. El proceso continúa para el resto de las celdas de la fila y luego en las filas siguientes hasta que se hayan analizado todas las celdas de procesamiento.

Se muestra el procesamiento de la vecindad para la segunda fila en celdas de entrada
Se identifican la vecindad, la celda de procesamiento y el valor de salida para una parte de la segunda fila de celdas de entrada.

Tamaño y rendimiento de vecindad

La herramienta puede procesar vecindades muy grandes. Sin embargo, a medida que la vecindad aumenta de tamaño, el rendimiento se verá afectado porque se incluirán más celdas de entrada en cada cálculo. El tipo de vecindad rectangular tiene algunas optimizaciones que permiten un mayor rendimiento en relación con otras formas de vecindad para un área determinada.

El tamaño máximo de cualquier dimensión de una vecindad se limita a 4.096 celdas. Esto significa que las vecindades rectangulares no pueden superar este número de celdas en la dirección horizontal o vertical. En el caso de las vecindades circulares, el radio no puede superar las 2.047 celdas.

Tipos de vecindad

La forma de una vecindad puede ser un anillo (donut), un círculo, un rectángulo o una cuña. Con un archivo kernel, también puede definir una forma de vecindad personalizada, además de asignar diferentes pesos a celdas específicas en la vecindad antes de calcular la estadística.

A continuación, se ofrecen descripciones de las formas de vecindad y cómo se definen:

  • Anillo
    • La forma de anillo está compuesta por dos círculos, uno dentro del otro, para de esta forma obtener una forma de donut. Las celdas con centros que caen fuera del radio del círculo más pequeño, pero dentro del radio del círculo más grande se incluirán en el procesamiento de la vecindad. El área comprendida entre los dos círculos constituye la vecindad de anillo.
    • El radio se identifica en celdas o unidades de mapa, medidas perpendicularmente al eje x o y. Cuando los radios se especifican en unidades de mapa, se convierten a radios en unidades de celda. Los radios resultantes en unidades de celda generan un área que representa de forma muy fidedigna el área calculada con los radios originales en unidades de mapa. Cualquier centro de celdas que abarca el anillo se incluirá en el procesamiento de la vecindad.
    • La vecindad del anillo predeterminado tiene un radio interno de una celda y un radio externo de tres celdas.
    • La siguiente ilustración de ejemplo muestra una vecindad de anillo:

    Celda de procesamiento con vecindad de anillo predeterminada
    Una celda de procesamiento con la vecindad de anillo predeterminada (radio interior = 1 celda, radio exterior = 3 celdas).

  • Círculo
    • Una vecindad de círculo se crea al especificar un valor de radio.
    • El radio se identifica en unidades de celda o de mapa, medidas perpendicularmente al eje x o y. Cuando el radio se especifica en unidades de mapa, se emplea una lógica adicional para determinar qué celdas se incluyen en la vecindad de procesamiento. En primer lugar, se calcula el área exacta de un círculo definido por el valor del radio especificado. A continuación, se calcula el área para dos círculos adicionales, uno con el valor del radio especificado redondeado hacia abajo y otro con dicho valor redondeado hacia arriba. Estas dos áreas se comparan con el resultado del radio especificado, y en la operación se usará el radio del área que esté más cerca.
    • El radio predeterminado de la vecindad de círculo es de tres celdas.
    • La siguiente ilustración de ejemplo muestra una vecindad de círculo:

    Celda de procesamiento con vecindad de círculo
    Una celda de procesamiento con una vecindad de círculo (radio = 2 celdas).

  • Rectángulo
    • La vecindad rectangular se especifica proporcionando el ancho y la altura en unidades de celda o de mapa.
    • Solo las celdas cuyos centros se encuentren dentro del objeto definido se procesarán como parte de la vecindad rectangular.
    • La vecindad rectangular predeterminada es un cuadrado con un ancho y una altura de tres celdas.
    • La posición de x,y para la celda de procesamiento dentro de la vecindad, con respecto a la esquina superior izquierda de la vecindad, se determina por las siguientes ecuaciones:

      x = (ancho de vecindad + 1)/2 y = (altura de vecindad + 1)/2

      Si el número de entrada de las celdas es par, las coordenadas x e y se calculan con truncamiento. Por ejemplo, en una vecindad de celda de 5 por 5, los valores x e y son 3,3. En una vecindad de 4 por 4, los valores x e y son 2,2.

    • A continuación, se muestran ejemplos de dos vecindades rectangulares:

    Celda de procesamiento con dos vecindades de rectangulares
    Una celda de procesamiento con dos vecindades de rectángulo diferentes.

  • Cuña
    • Una cuña es una vecindad con forma de gráfico circular especificada por un radio, un ángulo de inicio y el ángulo de finalización.
    • La cuña se extiende en el sentido contrario a las agujas del reloj desde el ángulo de inicio al ángulo de finalización. Los ángulos se especifican en grados aritméticos de 0 a 360, donde 0 se encuentra en el eje x positivo (las 3:00 en un reloj) y puede ser un entero o un punto flotante. Se pueden utilizar ángulos negativos.
    • El radio se identifica en celdas o unidades de mapa, medidas perpendicularmente al eje x o y. Cuando el radio se especifica en unidades de mapa, se convierte a un radio en unidades de celda. El radio resultante en unidades de celda genera un área que representa de forma muy fidedigna el área calculada con el radio original en unidades de mapa. Cualquier centro de celdas que abarca la cuña se incluirá en el procesamiento de la vecindad.
    • La vecindad en cuña predeterminada es de 0 a 90 grados, con un radio de tres celdas.
    • La siguiente ilustración de ejemplo muestra una vecindad en cuña:

    Celda de procesamiento con vecindad de cuña
    Una celda de procesamiento con la vecindad de cuña predeterminada (radio = 3 celdas, ángulo inicial = 0, ángulo final = 90).

  • Irregular
    • Permite especificar una vecindad de forma irregular alrededor de la celda de procesamiento.
    • El archivo kernel irregular especifica las posiciones de celdas que se deben incluir en la vecindad.
    • La posición de x,y para la celda de procesamiento dentro de la vecindad, con respecto a la esquina superior izquierda de la vecindad, se determina por las siguientes ecuaciones:

      x = (ancho + 1)/2 y = (altura + 1)/2

      Si el número de entrada de las celdas es par, las coordenadas x e y se calculan con truncamiento.

    • Lo siguiente es válido para un archivo kernel de una vecindad irregular:

      • El archivo kernel irregular es un archivo de texto ASCII que define los valores y la forma de una vecindad irregular. El archivo se puede crear con cualquier editor de texto. Debe tener una extensión de archivo .txt.
      • La primera línea especifica el ancho y la altura de la vecindad (el número de celdas en la dirección x, seguido de un espacio y el número de celdas en la dirección y).
      • Las líneas subsiguientes definen el valor que se utilizará para cada posición en la vecindad que representan. Se requiere un espacio entre cada valor.
      • Los valores definen si se incluirá en el cálculo una posición en la vecindad. Normalmente, el valor 1 se utiliza para identificar las posiciones a incluir en los cálculos para una vecindad irregular, pero se puede utilizar cualquier valor positivo o negativo que no sea 0. También se pueden utilizar valores de punto flotante.
      • Para excluir del cálculo una ubicación de la vecindad, utilice un valor de 0 (no un espacio en blanco) en la ubicación correspondiente del archivo kernel.

    • Este es un ejemplo de un archivo kernel irregular ASCII y la vecindad que representa:

    Ejemplo de kernel irregular y la vecindad asociada
    Se muestra un kernel de vecindad irregular con una ilustración de qué celdas se incluirán para el procesamiento.

  • Ponderación
    • De manera similar al tipo de vecindad irregular, la vecindad ponderada permite definir una vecindad irregular alrededor de la celda de procesamiento, pero también permite aplicar ponderaciones a los valores de entrada.
    • El archivo kernel de peso especifica las posiciones de celda que se deben incluir dentro de la vecindad y las ponderaciones por las que se multiplicarán.
    • La vecindad ponderada solo está disponible para los tipos de estadísticas de valor medio, desviación estándar y suma.
    • La posición de x,y para la celda de procesamiento dentro de la vecindad, con respecto a la esquina superior izquierda de la vecindad, se determina por las siguientes ecuaciones:

      x = (ancho + 1)/2 y = (altura + 1)/2

      Si el número de entrada de las celdas es par, las coordenadas x e y se calculan con truncamiento.

    • Lo siguiente es válido para el archivo kernel de una vecindad ponderada:

      • El archivo kernel de peso es un archivo de texto ASCII que define los valores y la forma de una vecindad ponderada. El archivo se puede crear con cualquier editor de texto. Debe tener una extensión de archivo .txt.
      • La primera línea especifica el ancho y la altura de la vecindad (el número de celdas en la dirección x, seguido de un espacio y el número de celdas en la dirección y).
      • Las líneas subsiguientes definen el valor que se utilizará para cada posición en la vecindad que representan. Se requiere un espacio entre cada valor.
      • Para la estadística de suma, un peso puede ser cualquier valor positivo, negativo, entero o de punto flotante.
      • Para las estadísticas de valor medio y desviación estándar, un peso puede ser cualquier valor entero positivo o de punto flotante. No se permiten valores negativos para estas estadísticas, por lo que cualquier posición con un peso negativo se ignorará en los cálculos.
      • Para excluir del cálculo una ubicación de la vecindad, utilice un valor de 0 (no un espacio en blanco) en la ubicación correspondiente del archivo kernel.

    • A continuación, se muestra un ejemplo del contenido de un archivo kernel ponderado y la vecindad que representa:

    Un ejemplo de kernel ponderado y la vecindad asociada
    Se muestra un kernel de vecindad ponderada con una ilustración de qué celdas se incluirán para el procesamiento.

Tipos de estadísticas

Las estadísticas disponibles son mayoría, máximo, valor medio, mediana, mínimo, minoría, percentil, rango, desviación estándar, suma y variedad. El tipo de estadísticas por defecto es el valor medio.

Algunos tipos de estadísticas solo están disponibles cuando el ráster de entrada es de tipo entero.

  • Mayoría
    • Solo se puede utilizar un ráster entero como entrada.
    • Se determina la frecuencia de cada valor de celda única de cada vecindad. Si existe un solo valor con la frecuencia más elevada (es lo más común), dicho valor se asigna a todas las celdas de esa vecindad. Si hay un empate, se asigna el más bajo de los valores coincidentes, a menos que el valor de la celda de procesamiento sea uno de los valores coincidentes. En ese caso, se devuelve el valor original del valor de la celda de procesamiento.
  • Máximo
    • Si el ráster de entrada es un entero, los valores en el ráster de salida serán un entero; si los valores en la entrada son un punto flotante, los valores en la salida serán un punto flotante.
  • Valor medio
    • La entrada puede ser de ráster entero o punto flotante.
    • El ráster de salida siempre será un punto flotante.
    • Para el tipo de vecindad ponderada, este es uno de los subconjuntos de tipos de estadísticas que se admiten. Consulte la sección Vecindad ponderada para obtener más información sobre cómo se calcula esta estadística.
  • Mediana
    • La entrada puede ser de ráster entero o punto flotante.
    • El ráster de salida siempre será un punto flotante.
    • Si hay un número impar de valores de celdas válidos en la vecindad, la mediana se calcula clasificando los valores y seleccionando el valor medio. Si hay un número par de valores en una vecindad, se clasifican los valores y se promedian los dos valores del medio.
  • Mínimo
    • Si el ráster de entrada es un entero, los valores en el ráster de salida serán un entero; si los valores en la entrada son un punto flotante, los valores en la salida serán un punto flotante.
  • Minoría
    • Solo se puede utilizar un ráster entero como entrada.
    • Se determina la frecuencia de cada valor de celda única de cada vecindad. Si existe un solo valor con la frecuencia más baja (es lo menos común), dicho valor se asigna a todas las celdas de esa vecindad. Si hay un empate, se asigna el más bajo de los valores coincidentes, a menos que el valor de la celda de procesamiento sea uno de los valores coincidentes. En ese caso, se devuelve el valor original del valor de la celda de procesamiento.
  • Percentil
    • La entrada puede ser de ráster entero o punto flotante.
    • El ráster de salida siempre será un punto flotante.
    • El resultado de la estadística de percentil se calcula con esta fórmula (Hyndman y Fan, 1996):
      pk = (k-1)/(n-1)
  • Rango
    • Si el ráster de entrada es un entero, los valores en el ráster de salida serán un entero; si los valores en la entrada son un punto flotante, los valores en la salida serán un punto flotante.
    • Los valores para cada ubicación de celda en el ráster de salida se determinan en una base de celda por celda al aplicar esta fórmula: Focal Range = Focal Maximum – Focal Minimum
  • Desviación estándar
    • El ráster de salida siempre será un punto flotante.
    • Para el tipo de vecindad ponderada, este es uno de los subconjuntos de tipos de estadísticas que se admiten. Consulte la sección Vecindad ponderada para obtener más información sobre cómo se calcula esta estadística.
    • La desviación estándar se calcula sobre la población entera (el método N); no se estima sobre la base de una muestra (el método N-1).
  • Suma
    • Si el ráster de entrada es un entero, los valores en el ráster de salida serán un entero; si los valores en la entrada son un punto flotante, los valores en la salida serán un punto flotante.
    • Para el tipo de vecindad ponderada, este es uno de los subconjuntos de tipos de estadísticas que se admiten. Consulte la sección Vecindad ponderada para obtener más información sobre cómo se calcula esta estadística.
  • Variedad
    • Solo se puede utilizar un ráster entero como entrada.

Cálculos de vecindad ponderada

La cantidad de influencia que tiene cada valor en la vecindad sobre el resultado final de la celda de procesamiento se puede ajustar aplicando pesos.

En las siguientes secciones, se muestran las fórmulas utilizadas para calcular los resultados de las estadísticas de valor medio, desviación estándar y suma ponderados. Un ejemplo acompaña a cada uno mostrando los cálculos para una celda de procesamiento y los resultados para una vecindad rectangular de celda de 3 x 3.

Estadística de valor medio ponderado

Para la vecindad ponderada con la estadística de valor medio, el valor de salida para una celda de procesamiento central es la suma del producto de los valores de peso kernel multiplicada por los valores de entrada, dividido por la suma de los valores de peso kernel.

La fórmula aplicada a las celdas dentro de una vecindad es la siguiente:

Ecuación del valor medio ponderado

Donde:

  • µW es el valor medio ponderado de población para la celda de procesamiento.
  • N es el número de celdas de la vecindad.
  • wi es un valor de peso definido en el kernel.
  • xi es un valor de celda de entrada.

Heredado:

En versiones anteriores, los cálculos utilizaban el número de celdas de la vecindad como denominador.

Los valores de peso deben ser valores positivos y pueden ser enteros o de punto flotante.

Ejemplo

Considere la siguiente celda de procesamiento de valor 7 y sus ocho vecinos circundantes:

4 6 7 6 7 8 4 5 6

El promedio matemático (suma / recuento) de estos valores es 53 / 9 = 5,889.

Considere el siguiente kernel de celda ponderado de 3 x 3:

3 3 0.0 0.5 0.0 0.5 2.0 0.5 0.0 0.5 0.0

Este kernel da el mayor grado de influencia a la celda central (peso de 2), reduce la influencia de los cuatro vecinos ortogonales en la celda de procesamiento (peso de 0,5) y hace que las cuatro celdas de esquina no tengan influencia (peso de 0).

Al aplicar la ecuación de valor medio ponderado proporcionada anteriormente, se muestran a continuación los cálculos para lograr el valor final.

=(O1x1 + w2x2 + w3x3 + w4x4 + w5x5 + w6 x6 + w7x7 + w8x8 + w9x9) / (w1 + w2 + w3 + w 4 + W5 + w6 + w7 + w8 + w9)= ((0*4)+(0.5*6)+(0*7)+(0.5*6)+(2.0*7)+(0.5*8) +(0*4)+(0.5*5)+(0*6)) / (0+0.5 + 0 + 0.5 + 2.0 + 0.5 + 0) = (0 + 3.0 + 0 + 3.0 + 14.0 + 4.0 + 2.5 + 0) / (0.5 + 0.5 + 0.5 + 0.5 + 0.5 + 0.5 + 0.5 + 14.0 + 14.0 + 4.0 + 2.5) / 4.0 = 26.5 / 4.0 = 6.625

A modo de comparación, el promedio normal de las nueve celdas de entrada sería 5,889. Si solo se incluyen las cinco celdas de entrada que están dentro del kernel (donde el peso != 0) pero sin considerar los valores de los pesos, el promedio sería 6,4 (6 + 6 + 7 + 8 + 5 = 32, que luego se divide por el recuento de cinco).

Estadística de desviación estándar ponderada

Para la vecindad ponderada con la estadística de desviación estándar, el valor de salida de una celda de procesamiento es el resultado de la siguiente ecuación:

Ecuación de la desviación estándar ponderada

Donde:

  • SDW es el valor de desviación estándar ponderada de población para la celda de procesamiento.
  • µW es el valor medio ponderado de población para la celda de procesamiento.
  • N es el número de celdas de la vecindad.
  • wi es un valor de peso definido en el kernel.
  • xi es un valor de celda de entrada.

Los valores de peso deben ser valores positivos y pueden ser enteros o de punto flotante.

Si todos los valores de entrada de una vecindad son iguales, el valor de desviación estándar para esa celda de procesamiento será 0.

Ejemplo

Los mismos valores de vecindad que se utilizaron en el ejemplo de valor medio ponderado anterior se utilizarán de nuevo para este ejemplo.

4 6 7 6 7 8 4 5 6

También se utilizarán los mismos valores de kernel ponderados:

3 3 0.0 0.5 0.0 0.5 2.0 0.5 0.0 0.5 0.0

Al aplicar la ecuación de desviación estándar ponderada proporcionada anteriormente para la celda de procesamiento central de valor 7, el resultado del cálculo de desviación estándar ponderada es aproximadamente 0,85696.

Estadística de suma ponderada

Para la vecindad ponderada con la estadística de suma, el valor de salida de una celda de procesamiento es el resultado de la siguiente ecuación:

Ecuación de la suma ponderada

Donde:

  • SW es el valor de suma ponderada para la celda de procesamiento.
  • N es el número de celdas de la vecindad.
  • wi es un valor de peso definido en el kernel.
  • xi es un valor de celda de entrada.

Los valores de peso pueden ser valores positivos o negativos y pueden ser enteros o de punto flotante.

Ejemplo

Considere los siguientes valores de entrada de vecindad:

4 6 7 6 7 8 4 5 6

Considere el siguiente kernel de celda ponderado de 3 x 3:

3 3 -1 -2 -1 0 0 0 1 2 1

Al aplicar la ecuación proporcionada anteriormente, se muestran a continuación los cálculos utilizados para alcanzar el valor final:

= (w1x1 + w2x2 + w3x3 + w4x4 + w5x5 + w6x6 + w7x7 + w8x8 + w9x9) = ((-1*4) + (-2*6) + (-1*7) + (0*6) + (0*7) + (0*8) + (1*4) + (2*5) + (1*6)) = (-4) + (-12) + (-7) + 4 + 10 + 6 = -3

Referencias

  • Hyndman, R.J. e Y. Fan, noviembre de 1996. "Sample Quantiles in Statistical Packages." The American Statistician 50 (4): 361-365.