Funzionamento di Statistiche focali

Disponibile con ArcGIS Image for ArcGIS Online.

Statistiche focali esegue un'operazione che calcola una statistica per le celle di input in una serie di finestre sovrapposte o vicinati. La statistica (ad esempio media, massima o somma) viene calcolata per tutte le celle di input contenute in ogni vicinato.

Elaborazione del vicinato

Concettualmente, l'algoritmo visita ogni cella del raster di input e calcola una statistica per le celle che ricadono nella forma del vicinato specificata intorno a esso. La cella per cui viene calcolata la statistica viene detta cella di elaborazione. Il valore della cella di elaborazione in genere è incluso nel calcolo statistico del vicinato, ma a seconda della forma del vicinato, potrebbe non esserlo. Poiché i vicinati si sovrappongono nel processo di scansione, le celle di input incluse nel calcolo per una cella di elaborazione potrebbero contribuire anche al calcolo per un'altra cella di elaborazione.

Sono disponibili diverse forme di vicinato predefiniti tra cui scegliere. È anche possibile creare una forma personalizzata. La statistica che è possibile calcolare per un vicinato sono maggioranza, massimo, media, mediana, minimo, minoranza, percentile, intervallo, deviazione standard, somma e varietà.

Calcolo di esempio

Per illustrare l'elaborazione del vicinato per Statistiche focali, considerare il calcolo di una statistica Somma del vicinato attorno alla cella di elaborazione con il valore 5 nel seguente grafico. È specificata una forma di vicinato rettangolare di 3 per 3 celle e il parametro Ignora NoData nei calcoli è lasciato sull'impostazione predefinita. La somma dei valori delle celle del vicinato (3 + 2 + 3 + 4 + 2 + 1 + 4 = 19) più il valore della cella di elaborazione (5) è uguale a 24 (19 + 5 = 24). Il valore 24 viene fornito alla cella nel raster di output nella stessa posizione della cella di elaborazione nel raster di input.

Sono mostrati i valori di input per un vicinato di esempio di 3x3 celle e il valore della somma di output per la cella di elaborazione

Il grafico precedente dimostra come vengono eseguiti i calcoli su una singola cella del raster di input. Nel grafico seguente vengono mostrati i risultati per tutte le celle di input. Le celle evidenziate in giallo identificano la stessa cella di elaborazione e il vicinato come nell'esempio precedente.

Sono mostrati tutti i valori di input e output per un'operazione di somma focale

Celle NoData

Il parametro Ignora NoData nei calcoli controlla come vengono gestite le celle nella finestra del vicinato. Quando questo parametro è selezionato (ignore_nodata = "DATA" in Python), le celle del vicinato che sono NoData saranno ignorate nel calcolo del valore di output per la cella di elaborazione. Se non è selezionato (ignore_nodata = "NODATA" in Python), se una cella del vicinato è NoData, il valore di output per la cella di elaborazione sarà NoData.

Se la cella di elaborazione stessa è NoData, con l'opzione Ignora NoData nei calcoli selezionata, il valore di output per la cella viene calcolato in base ad altre celle del vicinato con un valore valido. Se tutte le celle del vicinato sono NoData, l'output sarà NoData.

Celle angolari e sui bordi

Quando la cella di elaborazione è vicina agli angoli o ai bordi del raster di input, il numero di celle incluse nel vicinato viene regolato di conseguenza. Anche il calcolo della statistica viene regolato.

Il seguente grafico illustra come viene calcolata la statistica di output per ogni cella di elaborazione dalle celle disponibili in ogni singolo vicinato. Il processo inizia nell'angolo superiore sinistro del raster di input ed esegue la scansione da sinistra a destra attraverso ogni riga prima di procedere alla riga successiva. Il vicinato utilizzato in questo esempio è un rettangolo di 3x3 celle e la statistica applicata è la somma. Il parametro NoData nei calcoli è lasciato sull'impostazione predefinita. Nei grafici, il vicinato è delineato in giallo e la cella di elaborazione è delineata in ciano.

Per la prima cella di elaborazione, poiché si trova nell'angolo superiore sinistro del raster di 6x6 celle di input, sono disponibili solo quattro celle per il vicinato. Sommando quei valori si ottiene il valore di output per la prima cella con valore 11 assegnato. Per la successiva cella a destra, esistono ora sei celle nel vicinato e viene calcolata la somma per tali celle. La scansione procede attraverso tutte le celle della prima riga. Per risparmiare spazio, non vengono mostrate tutte le celle di elaborazione.

Il vicinato intorno a ogni cella di elaborazione per la prima riga di celle di input è evidenziato, identificando le celle di input che saranno utilizzate per calcolare il valore della cella di output.
Il vicinato (delineato in giallo) attorno a ogni cella di elaborazione (delineata in ciano) identifica le celle di input (superiori) che saranno utilizzate nel calcolo del valore statistico di output (inferiore).

Tenere presente che nella prima riga, per la terza cella di elaborazione da sinistra (valore = 1), una delle celle di input contiene il valore NoData. Poiché lo strumento è stato impostato per ignorare NoData, quella particolare cella sarà ignorata nei calcoli. Se la statistica da calcolare fosse stata impostata su Media anziché Somma, sarebbe stata calcolata come somma di tutte le celle del vicinato diverse da NoData diviso per 5.

Per la seconda riga di celle di input, la statistica per la prima cella di elaborazione sarà calcolata in base alle sei celle disponibili nel vicinato. Per la successiva cella di elaborazione, saranno 9 le celle da considerare nel calcolo. Per la cella successiva, ci saranno otto valori di input da usare nel calcolo perché una delle celle nel vicinato da 3x3 è NoData. Il processo continua per le celle restanti della riga e poi sulle righe successive finché non sono state analizzate tutte le celle di elaborazione.

Viene mostrata l'elaborazione del vicinato per la seconda riga nelle celle di input
Il vicinato, la cella di elaborazione e il valore di output per una parte della seconda riga di celle di input viene identificato.

Dimensioni del vicinato e prestazioni

Lo strumento consente di elaborare vicinati molto grandi. Quando le dimensioni del vicinato aumentano, tuttavia, le prestazioni diminuiscono poiché in ogni calcolo viene incluso un numero maggiore di celle. Il tipo di vicinato a rettangolo presenta alcune ottimizzazioni che consentono migliori prestazioni rispetto ad altre forme di vicinato per una data area.

La grandezza massima di ogni dimensione di un vicinato è limitata a 4096 celle. Di conseguenza, i vicinati rettangolari non possono superare questo numero di celle in direzione orizzontale o verticale. Per i vicinati circolari, il raggio non può superare le 2047 celle.

Tipi di vicinato

La forma di un vicinato può essere una corona circolare (ciambella), un cerchio, un rettangolo o uno spicchio. Utilizzando un file kernel, è anche possibile definire una forma di vicinato personalizzata nonché assegnare diversi pesi a specifiche celle del vicinato prima che venga calcolata la statistica.

Di seguito sono riportate le descrizioni delle forme di vicinato e come vengono definite:

  • Corona circolare
    • La forma a corona circolare è composta da due cerchi, uno interno all'altro per formare una ciambella. Le celle con centri che ricadono all'esterno del raggio del cerchio più piccolo ma all'interno del raggio del cerchio più grande saranno inclusi nell'elaborazione del vicinato. L'area che ricade tra i due cerchi costituisce il vicinato a corona circolare.
    • Il raggio è identificato in unità cella o mappa, misurate perpendicolarmente all'asse x o y. Quando i raggi sono specificati in unità mappa, sono convertiti in raggi in unità cella. I raggi risultanti in unità cella producono un'area che rappresenta più da vicino l'area calcolata utilizzando i raggi originali in unità mappa. Il centro delle celle racchiuso nella corona sarà incluso nell'elaborazione del vicinato.
    • Il vicinato a corona circolare predefinito ha un raggio interno di una cella e uno esterno di tre celle.
    • Di seguito è fornito un esempio di vicinato a corona circolare:

    Cella di elaborazione con vicinato a corona circolare predefinito
    Una cella di elaborazione con vicinato a corona circolare predefinito (raggio interno = 1 cella, raggi esterni = 3 celle).

  • Cerchio
    • Un vicinato a cerchio viene creato specificando il valore del raggio.
    • Il raggio è identificato in unità cella o mappa, misurate perpendicolarmente all'asse x o y. Quando il raggio è specificato in unità mappa, viene utilizzata ulteriore logica per determinare quali celle sono incluse nell'elaborazione del vicinato. Innanzitutto viene calcolata l'area esatta di un cerchio definito dal valore del raggio specificato. Successivamente viene calcolata l'area per altri due cerchi, uno con il valore del raggio specificato arrotondato per difetto e uno con il valore del raggio specificato arrotondato per eccesso. Queste due aree vengono confrontate con il risultato del raggio specificato, quindi nell'operazione viene utilizzato il raggio dell'area più vicina.
    • Il raggio dei vicinato a cerchio predefinito è lungo tre celle.
    • Di seguito è fornito un esempio di vicinato a cerchio:

    Cella di elaborazione con vicinato a cerchio
    Una cella di elaborazione con vicinato a cerchio (raggio = 2 celle).

  • Rettangolo
    • Il vicinato a rettangolo viene specificato fornendo una larghezza e un'altezza in unità cella o mappa.
    • Solo le celle con centri che ricadono entro l'oggetto definito vengono elaborate come parte del vicinato a rettangolo.
    • Il vicinato a rettangolo predefinito è un quadrato con altezza e larghezza di tre celle.
    • La posizione x,y per la cella di elaborazione nel vicinato in relazione all'angolo superiore sinistro del vicinato è determinata dalle seguenti equazioni:

      x = (larghezza del vicinato + 1)/2 y = (altezza del vicinato + 1)/2

      Se il numero di celle di input è pari, le coordinate x,y vengono calcolate con il troncamento. Ad esempio, in un vicinato da 5x5 celle, i valori di x e y sono 3,3. In un vicinato da 4x4, i valori di x e y sono 2,2.

    • Di seguito vengono fornite illustrazioni di esempio di due vicinati:

    Cella di elaborazione con vicinati a rettangolo
    Una cella di elaborazione con due diversi vicinati a rettangolo.

  • Spicchio
    • Uno spicchio è un vicinato a forma di torta specificato da un raggio, un angolo iniziale e un angolo finale.
    • Lo spicchio si estende in senso antiorario dall'angolo iniziale verso l'angolo finale. Gli angoli sono specificati in gradi aritmetici da 0 a 360, dove 0 è sull'asse x positivo (le 3:00 su un orologio) e può essere intero o a virgola mobile. Non possono essere utilizzati angoli negativi.
    • Il raggio è identificato in unità cella o mappa, misurate perpendicolarmente all'asse x o y. Quando il raggio è specificato in unità mappa, viene convertito in raggio in unità cella. Il raggio risultante in unità cella produce un'area che rappresenta più da vicino l'area calcolata utilizzando il raggio originale in unità mappa. Il centro delle celle racchiuso nello spicchio sarà incluso nell'elaborazione del vicinato.
    • Il vicinato a spicchio predefinito va da 0 a 90 gradi, con un raggio di tre celle.
    • Di seguito è fornito un esempio di vicinato a spicchio:

    Cella di elaborazione con vicinati a spicchio
    Una cella di elaborazione con vicinato a spicchio predefinito (raggio = 3 celle, angolo iniziale = 0, angolo finale = 90).

  • Irregolare
    • Consente di specificare un vicinato con una forma irregolare intorno alla cella di elaborazione.
    • Il file kernel irregolare specifica le posizioni delle celle da includere nel vicinato.
    • La posizione x,y per la cella di elaborazione nel vicinato in relazione all'angolo superiore sinistro del vicinato è determinata dalle seguenti equazioni:

      x = (larghezza + 1)/2 y = (altezza + 1)/2

      Se il numero di celle di input è pari, le coordinate x,y vengono calcolate con il troncamento.

    • Le considerazioni seguenti si applicano a un file kernel per un vicinato irregolare:

      • Il file kernel irregolare è un file di testo ASCII che definisce i valori e la forma di un vicinato irregolare. Il file può essere creato con qualsiasi editor di testo. Deve avere estensione file .txt.
      • La prima riga specifica la larghezza e l'altezza del vicinato (il numero di celle in direzione x seguito da uno spazio e dal numero di celle in direzione y).
      • Le righe successive definiscono il valore da utilizzare per ciascuna posizione nel vicinato che rappresentano. Uno spazio tra i valori è necessario.
      • I valori definiscono se una posizione nel vicinato sarà inclusa nel calcolo. In genere, il valore 1 viene utilizzato per identificare le posizioni da includere nei calcoli per un vicinato irregolare, ma è possibile utilizzare qualsiasi valore positivo o negativo diverso da 0. È anche possibile utilizzare valori a virgola mobile.
      • Per escludere una posizione nel vicinato dal calcolo, utilizzare il valore 0 (non uno spazio vuoto) nella posizione corrispondente nel file kernel.

    • Di seguito viene riportato un esempio di file kernel irregolare ASCII e il vicinato rappresentato:

    Un kernel irregolare di esempio e il vicinato associato
    Il kernel di un vicinato irregolare viene mostrato con l'indicazione delle celle che saranno incluse per l'elaborazione.

  • Peso
    • Simile al tipo di vicinato irregolare, il vicinato pesato consente di definire un vicinato irregolare intorno alla cella di elaborazione, ma consente anche di applicare pesi ai valori di input.
    • Il file kernel dei pesi specifica le posizioni delle celle da includere nel vicinato e i pesi per cui saranno moltiplicate.
    • Il vicinato pesato è disponibile solo per i tipi di statistica media, deviazione standard e somma.
    • La posizione x,y per la cella di elaborazione nel vicinato in relazione all'angolo superiore sinistro del vicinato è determinata dalle seguenti equazioni:

      x = (larghezza + 1)/2 y = (altezza + 1)/2

      Se il numero di celle di input è pari, le coordinate x,y vengono calcolate con il troncamento.

    • Le considerazioni seguenti si applicano a un file kernel per un vicinato pesato:

      • Il file kernel dei pesi è un file di testo ASCII che definisce i valori e la forma di un vicinato pesato. Il file può essere creato con qualsiasi editor di testo. Deve avere estensione file .txt.
      • La prima riga specifica la larghezza e l'altezza del vicinato (il numero di celle in direzione x seguito da uno spazio e dal numero di celle in direzione y).
      • Le righe successive definiscono il valore da utilizzare per ciascuna posizione nel vicinato che rappresentano. Uno spazio tra i valori è necessario.
      • Per la statistica somma, un peso può essere qualsiasi valore positivo, negativo, intero o a virgola mobile.
      • Per le statistiche media e deviazione standard, un peso può essere qualsiasi valore intero positivo o a virgola mobile. I valori negativi non sono consentiti per queste statistiche, per cui tutte le posizioni con un peso negativo saranno ignorate nei calcoli.
      • Per escludere una posizione nel vicinato dal calcolo, utilizzare il valore 0 (non uno spazio vuoto) nella posizione corrispondente nel file kernel.

    • Di seguito viene riportato un esempio di contenuto di un file kernel pesato ASCII e il vicinato rappresentato:

    Un kernel pesato di esempio e il vicinato associato
    Il kernel di un vicinato pesato viene mostrato con l'indicazione delle celle che saranno incluse per l'elaborazione.

Tipi di statistica

Le statistiche disponibili sono maggioranza, massimo, media, mediana, minimo, minoranza, percentile, intervallo, deviazione standard, somma e varietà. Il tipo di statistica predefinito è media.

Alcuni tipi di statistica sono disponibili solo quando il raster di input è di tipo intero.

  • Maggioranza
    • Solo un raster intero può essere utilizzato come input.
    • Viene determinata la frequenza di ogni valore di cella univoco in ogni vicinato. Se esiste un singolo valore con la frequenza maggiore (si verifica più spesso), tale valore viene assegnato alle celle del vicinato. In caso di collegamento, viene assegnato il più basso dei valori collegati, a meno che il valore della cella di elaborazione non sia uno dei collegamenti. In tal caso viene restituito il valore originale della cella di elaborazione.
  • Massimo
    • Se il raster di input è intero, i valori del raster di output saranno interi; se i valori nell'input sono a virgola mobile, i valori nell'output saranno a virgola mobile.
  • Medio
    • L'input può essere un raster intero o a virgola mobile.
    • Il raster di output sarà sempre a virgola mobile.
    • Per il tipo di vicinato pesato, questo è uno dei sottoinsiemi di tipi di statistica supportati. Per i dettagli sul calcolo di questa statistica, vedere la sezione Vicinato pesato.
  • Mediana
    • L'input può essere un raster intero o a virgola mobile.
    • Il raster di output sarà sempre a virgola mobile.
    • In caso di un numero dispari di valori di celle validi nel vicinato, il valore mediano viene calcolato classificando i valori e selezionando il valore intermedio. In caso di numero pari di valori in un vicinato, i valori vengono classificati e viene calcolata la media dei due valori intermedi.
  • Minimo
    • Se il raster di input è intero, i valori del raster di output saranno interi; se i valori nell'input sono a virgola mobile, i valori nell'output saranno a virgola mobile.
  • Minoranza
    • Solo un raster intero può essere utilizzato come input.
    • Viene determinata la frequenza di ogni valore di cella univoco in ogni vicinato. Se esiste un singolo valore con la frequenza minore (si verifica meno spesso), tale valore viene assegnato alle celle del vicinato. In caso di collegamento, viene assegnato il più basso dei valori collegati, a meno che il valore della cella di elaborazione non sia uno dei collegamenti. In tal caso viene restituito il valore originale della cella di elaborazione.
  • Percentile
    • L'input può essere un raster intero o a virgola mobile.
    • Il raster di output sarà sempre a virgola mobile.
    • Il risultato della statistica del percentile viene calcolato in base alla seguente formula (Hyndman e Fan, 1996):
      pk = (k-1)/(n-1)
  • Intervallo
    • Se il raster di input è intero, i valori del raster di output saranno interi; se i valori nell'input sono a virgola mobile, i valori nell'output saranno a virgola mobile.
    • I valori per ogni posizione di cella nel raster di output sono determinati cella per cella applicando la formula: Focal Range = Focal Maximum – Focal Minimum
  • Deviazione standard
    • Il raster di output sarà sempre a virgola mobile.
    • Per il tipo di vicinato pesato, questo è uno dei sottoinsiemi di tipi di statistica supportati. Per i dettagli sul calcolo di questa statistica, vedere la sezione Vicinato pesato.
    • La deviazione standard è calcolata sull'intera popolazione (il metodo N), non stimata in base a un campione (il metodo N-1).
  • Somma
    • Se il raster di input è intero, i valori del raster di output saranno interi; se i valori nell'input sono a virgola mobile, i valori nell'output saranno a virgola mobile.
    • Per il tipo di vicinato pesato, questo è uno dei sottoinsiemi di tipi di statistica supportati. Per i dettagli sul calcolo di questa statistica, vedere la sezione Vicinato pesato.
  • Varietà
    • Solo un raster intero può essere utilizzato come input.

Calcoli del vicinato pesato

L'influenza posseduta da ogni valore del vicinato sul risultato finale per la cella di elaborazione può essere regolata applicando pesi.

Nelle sezioni seguenti, sono mostrate le formule utilizzate per calcolare le statistiche di somma, deviazione standard e media pesata. Per ciascuna viene fornito un esempio che mostra i calcoli per una cella di elaborazione e i risultati per un vicinato a rettangolo di 3x3 celle.

Statistica della media pesata

Per un vicinato pesato con statistica della media, il valore di output per una cella di elaborazione centrale è la somma del prodotto dei valori dei pesi del kernel moltiplicato per i valori di input diviso per la somma dei valori dei pesi del kernel.

La formula applicata alle celle in un vicinato è la seguente:

Equazione media verificata

Dove:

  • µW è il valore della media pesata della popolazione per la cella di elaborazione.
  • N è il numero di celle presenti nel vicinato.
  • wi è il valore di un peso definito nel kernel.
  • xi è il valore di una cella di input.

Legacy:

Nelle release precedenti, i calcoli utilizzavano il numero di celle nel vicinato come denominatore.

I valori dei pesi devono essere valori positivi e possono essere interi o a virgola mobile.

Esempio

Considerare la seguente cella di elaborazione di valore 7 e i suoi otto vicini circostanti:

4 6 7 6 7 8 4 5 6

La media matematica (somma/ conteggio) di questi valori è 53 / 9 = 5,889.

Considerare il seguente kernel di celle pesate 3 x 3:

3 3 0,0 0,5 0,0 0,5 2,0 0,5 0,0 0,5 0,0

Questo kernel fornisce il grado di influenza maggiore alla cella centrale (peso pari a 2), diminuisce l'influenza dei quattro vicini ortogonali alla cella di elaborazione (peso pari a 0,5) e annulla l'influenza delle quattro celle angolari (peso pari a 0).

Applicando l'equazione della media pesata fornita sopra, di seguito sono indicati i calcoli per raggiungere il valore finale.

= (w1x1 + w2x2 + w3x3 + w4x4 + w5x5 + w6x6 + w7x7 + w8x8 + w9x9) / (w1 + w2 + w3 + w4 + 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,5 + 0) = (0 + 3,0 + 0 + 3,0 + 14,0 + 4,0 + 0 + 2.5 + 0) / (0,5 + 0,5 + 2,0 + ,5 + 0,5) = (3,0 + 3,0 + 14,0 + 4,0 + 2,5) / 4,0 = 26,5 / 4,0 = 6,625

Per confronto, la media regolare di nove celle di input sarebbe 5,889. Se sono incluse solo cinque celle di input presenti nel kernel (dove il peso != 0) ma con valori dei pesi non considerati, la media sarebbe 6,4 (6 + 6 + 7 + 8 + 5 = 32 diviso per cinque).

Statistica della deviazione standard pesata

Per il vicinato pesato con statistica della deviazione standard, il valore di output per una cella di elaborazione è il risultato della seguente equazione:

Equazione deviazione standard verificata

Dove:

  • SDW è il valore della deviazione standard pesata della popolazione per la cella di elaborazione.
  • µW è il valore della media pesata della popolazione per la cella di elaborazione.
  • N è il numero di celle presenti nel vicinato.
  • wi è il valore di un peso definito nel kernel.
  • xi è il valore di una cella di input.

I valori dei pesi devono essere valori positivi e possono essere interi o a virgola mobile.

Se i valori di input in un vicinato sono gli stessi, il valore della deviazione standard per tale cella di elaborazione è 0.

Esempio

Gli stessi valori di vicinato utilizzati nell'esempio precedente della media pesata saranno utilizzati anche in questo esempio.

4 6 7 6 7 8 4 5 6

Saranno inoltre utilizzati gli stessi valori del kernel pesato:

3 3 0,0 0,5 0,0 0,5 2,0 0,5 0,0 0,5 0,0

Applicando l'equazione della deviazione standard fornita sopra per la cella di elaborazione centrale di valore 7, il risultato della deviazione standard pesata è approssimativamente 0,85696.

Statistica della somma pesata

Per il vicinato pesato con statistica della somma, il valore di output per una cella di elaborazione è il risultato della seguente equazione:

Equazione della somma pesata

Dove:

  • SW è il valore della somma pesata per la cella di elaborazione.
  • N è il numero di celle presenti nel vicinato.
  • wi è il valore di un peso definito nel kernel.
  • xi è il valore di una cella di input.

I valori dei pesi possono essere valori positivi o negativi e possono essere interi o a virgola mobile.

Esempio

Considerare i seguenti valori di input del vicinato:

4 6 7 6 7 8 4 5 6

Considerare il seguente kernel di celle pesate 3 x 3:

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

Applicano l'equazione fornita sopra, di seguito sono indicati i calcoli per raggiungere il valore finale:

= (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

Riferimenti

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