apbase.idw
API de alto nível do inverso da distância ponderada (IDW).
Este pacote exporta a classe pública usada para rodar a interpolação por IDW.
- class apbase.idw.IDW(*, radius=None, power=2.0, max_neighbors=40, min_neighbors=3)
Classes base:
objectInterpola coordenadas projetadas pelo inverso da distância ponderada.
Armazena as amostras finitas, com coordenadas
x/ye valoresz, e depois estima os valores nos pontos a estimar com pesos pelo inverso da distância. As coordenadas não são projetadas internamente; passe coordenadas métricas/projetadas quandoradiusestiver em metros.- Parâmetros
- radius (float | None) – Raio de busca local. Se for
None, ofitestima um semivariograma e usa orange(range / 3com 10.000 pontos ou mais). - power (float) – Potência aplicada à distância nos pesos do IDW.
2.0é a ponderação comum pelo inverso do quadrado da distância. - max_neighbors (int) – Número máximo de pontos amostrais usados por ponto a estimar.
- min_neighbors (int) – Número mínimo de pontos amostrais dentro de
radius; abaixo dele, osmax_neighborspontos mais próximos são usados, qualquer que seja a distância.
- radius (float | None) – Raio de busca local. Se for
Exemplos
>>> import numpy as np >>> from apbase.idw import IDW >>> x = np.ascontiguousarray([0.0, 10.0, 0.0, 10.0]) >>> y = np.ascontiguousarray([0.0, 0.0, 10.0, 10.0]) >>> z = np.ascontiguousarray([5.0, 7.0, 8.0, 10.0]) >>> targets = np.ascontiguousarray([[5.0, 5.0], [10.0, 10.0]]) >>> values = IDW(radius=20.0, min_neighbors=1).fit(x, y, z).interpolate(targets)- property radius: float | None
Raio de busca local.
- Retorna
Raio explícito, ou
Nonepara derivá-lo do alcance do semivariograma durante ofit().- Tipo de retorno
float ou None
- property power: float
Potência aplicada à distância nos pesos do IDW.
- Retorna
Potência da distância, positiva.
- Tipo de retorno
float
- property max_neighbors: int
Número máximo de pontos amostrais usados por ponto a estimar.
- Retorna
Limite superior de vizinhos locais.
- Tipo de retorno
int
- property min_neighbors: int
Número mínimo de pontos amostrais dentro de
radiusantes de recorrer aos pontos mais próximos.- Retorna
Limite inferior de vizinhos locais.
- Tipo de retorno
int
- property n_threads: int
Número de threads OpenMP passado às rotinas nativas.
Lido na hora de
apbase.config["n_threads"](veja a docstring da classe) a cada acesso – não fica guardado desde a construção.- Retorna
Número atual de threads OpenMP.
- Tipo de retorno
int
- classmethod from_data(x, y, z, **kwargs)
Cria e ajusta um interpolador IDW.
- property is_fitted: bool
Se há dados de entrada finitos disponíveis.
- Retorna
Truedepois quefit()termina com sucesso.- Tipo de retorno
bool
- property model_params: dict[str, float | int | str]
Parâmetros legíveis do semivariograma usado pelo raio padrão.
- Retorna
Parâmetros do semivariograma usados para derivar o raio implícito.
- Tipo de retorno
dict
- Exceções
ValueError – Se o interpolador não foi ajustado ou foi ajustado com um raio explícito, de modo que nenhum semivariograma foi estimado.
- fit(x, y, z)
Armazena as amostras finitas usadas depois pela interpolação.
- Parâmetros
- x (ArrayLike) – Coordenadas x dos pontos amostrais, unidimensionais. Use unidades projetadas/métricas quando
radiusfor métrico. - y (ArrayLike) – Coordenadas y dos pontos amostrais, unidimensionais. Precisa ter o mesmo tamanho de
x. - z (ArrayLike) – Valores amostrais a interpolar, unidimensionais. Precisa ter o mesmo tamanho de
xey.
- x (ArrayLike) – Coordenadas x dos pontos amostrais, unidimensionais. Use unidades projetadas/métricas quando
- Retorna
O interpolador ajustado. Os registros em que
x,youzsãoNaNou infinitos são ignorados.- Tipo de retorno
- Exceções
ValueError – Se os arrays de entrada tiverem tamanhos inconsistentes ou menos de
min_neighborsregistros finitos.
Exemplos
>>> idw = IDW(radius=30.0, min_neighbors=1) >>> idw.fit(x, y, z) >>> idw.is_fitted True
- interpolate(targets)
Estima os valores nos pontos a estimar.
- Parâmetros
targets (Grid | ArrayLike) – Coordenadas dos pontos a estimar, como um array
(n_targets, 2)em que a coluna0é x e a coluna1é y. Também são aceitos umaGridajustada, um GeoDataFrame/GeoSeries ou uma lista de objetos do tipoPoint; eles são lidos pela função auxiliar compartilhadaextract_target_xy.- Retorna
Array
float64unidimensional com um valor interpolado por ponto a estimar. Pontos a estimar com menos demin_neighborspontos amostrais dentro deradiususam osmax_neighborsmais próximos.- Tipo de retorno
numpy.ndarray
Exemplos
>>> targets = np.ascontiguousarray([[5.0, 5.0], [20.0, 20.0]]) >>> values = idw.interpolate(targets)
- predict(targets)
Estima os valores nos pontos a estimar.
- Parâmetros
targets (Grid ou array_like) – Coordenadas dos pontos a estimar aceitas por
interpolate().- Retorna
Um valor interpolado por ponto a estimar.
- Tipo de retorno
numpy.ndarray
- apbase.idw.idw(x, y, z, targets, *, radius=None, power=2.0, max_neighbors=40, min_neighbors=3)
Ajusta o IDW aos dados de entrada e estima os valores nos pontos a estimar.
- Parâmetros
- x (array_like) – Coordenadas e valores amostrais.
- y (array_like) – Coordenadas e valores amostrais.
- z (array_like) – Coordenadas e valores amostrais.
- targets (array_like) – Coordenadas dos pontos a estimar aceitas por
apbase.idw.IDW.interpolate(). - radius (float ou None, padrão None) – Raio de busca local. Se for
None, deriva orangede um semivariograma ajustado (range / 3com 10.000 pontos ou mais). - power (float, padrão 2.0) – Potência do IDW (expoente da distância).
- max_neighbors (int) – Limites de vizinhos usados pela busca local.
- min_neighbors (int) – Limites de vizinhos usados pela busca local.
- Retorna
Um valor interpolado por ponto a estimar.
- Tipo de retorno
numpy.ndarray