Mais

Calculadora Raster QGIS: os valores precisam ser definidos como 0 em vez de nenhum dado


Tenho um mapa de cobertura com diferentes valores para as opções de uso do solo, por exemplo 190 para áreas de uso comercial. Agora, quero extrair apenas essas áreas usando a Calculadora Raster com a expressão

"Raster @ 1" = 190

Isso funciona bem, o Raster resultante contém o valor 1 para todas as células que eram 190 antes (como deveria), mas nenhum valor de dados (valores negativos altos) para todas as outras células, que eu preciso ser zero em vez disso. Quando eu fiz a mesma operação para outros rasters, o QGIS definiria as outras células como 0, o que, neste caso, é necessário para eu adicionar o raster de resultado a outro raster mais tarde.

Alguma ideia de como posso evitar que o QGIS defina as células sem células de dados? E qual poderia ser o motivo de ele lidar de forma diferente com raster do mesmo formato ao aplicar a mesma operação com a calculadora raster? Ambos os rasters são .tif, mas de fontes diferentes.


No QGIS, acho a calculadora raster um pouco limitante, mas você pode usar a ferramenta de processamento SAGA "Reclassificar células de grade" (Caixa de ferramentas de processamento> SAGA> Ferramentas de grade

Nos parâmetros, você pode selecionar "[1] intervalo" para o método, fornecer seu intervalo e selecionar 0 para "novo valor para outros valores".


Acabei de encontrar as ferramentas SAGA e a melhor calculadora raster fornecida. Resolvi o problema usando a seguinte fórmula:

ifelse (eq (a, 190), 1, 0)

que define ativamente todas as células com um valor diferente de 190 para zero.

Edit: Eu acabei de descobrir a razão pela qual o QGIS lidou de forma diferente, também: eu estava errado ao afirmar que ambos os rasters tinham o mesmo formato. No primeiro caso, meu raster de entrada estava no formato ASCII e o QGIS definiu zeros. Fazendo a mesma operação com um formato tif, ele não define valores de dados.


A Divisão de Energia do Departamento de Planejamento e Desenvolvimento do Condado de Santa Bárbara busca seus conselhos sobre energia eólica. Eles receberam uma concessão para semear a produção de energia eólica em pequena escala, subsidiando turbinas WES 250kW para instalação no interior do condado de Santa Bárbara. Essas turbinas operam em alturas de cubo entre 30 me 50 m.

Considerando os gastos de capital (CAPEX), despesas operacionais (OPEX), vida útil e tarifa de alimentação da turbina, um WES 250kW não será economicamente viável se operado em locais com densidades de energia eólica inferiores a 300 W / m / m no centro altura. Assumindo uma distribuição Weibull com um valor Weibull k de 2,0, uma densidade de energia eólica de 300 W / m / m corresponde a uma velocidade média anual do vento de 6,4 m / s.

A Divisão de Energia deseja uma lista classificada de 10 locais potenciais, cada um com pelo menos 4 hectares contíguos, que atendam aos seus requisitos de adequação, escrita da seguinte forma:

  • Vento: Os locais devem ter densidade de energia eólica suficiente.
  • Estradas: Os locais devem estar a 7,5 km de uma estrada principal.
  • Aeroportos: Os locais não podem estar a menos de 7,5 km de um aeroporto.
  • Urbano: Os locais não podem estar dentro de 1 milha de uma área urbana existente.
  • Incêndio: Os locais não podem estar dentro de zonas de risco de incêndio
  • Público: Os locais não podem estar em terrenos públicos

Uma resposta curta é que isso é controverso. Ao contrário do conselho que você mencionou, as pessoas em muitas áreas usam escalas ordinais e muitas vezes ficam felizes com isso significa fazer o que querem. As médias de notas ou o equivalente em muitos sistemas educacionais são um exemplo.

No entanto, os dados ordinais não sendo normalmente distribuídos não é um motivo válido, porque a média é

amplamente utilizado para distribuições não normais

bem definido matematicamente para muitas distribuições não normais, exceto em alguns casos patológicos.

Pode não ser uma boa ideia usar a média na prática se os dados definitivamente não estiverem distribuídos normalmente, mas isso é diferente.

Uma razão mais forte para não usar a média com dados ordinais é que seu valor depende das convenções de codificação. Os códigos numéricos como 1, 2, 3, 4 são normalmente escolhidos apenas por simplicidade ou conveniência, mas em princípio eles poderiam ser igualmente 1, 23, 456, 7890 no que diz respeito a corresponder a uma ordem definida. Tomar a média em qualquer dos casos envolveria tomar essas convenções literalmente (ou seja, como se os números não fossem arbitrários, mas justificáveis), e não há nenhuma base rigorosa para fazer isso. Você precisa de uma escala de intervalo em que diferenças iguais entre os valores possam ser tomadas literalmente para justificar a obtenção de médias. Considero isso o argumento principal, mas, como já indicado, as pessoas freqüentemente o ignoram e deliberadamente, porque consideram os meios úteis, independentemente do que os teóricos da medição digam.

Aqui está um exemplo extra. Freqüentemente, as pessoas são solicitadas a escolher uma das opções "discordo totalmente". "concordo totalmente" e (dependendo parcialmente do que o software deseja) os pesquisadores codificam isso como 1 .. 5 ou 0 .. 4 ou o que quiserem, ou declaram isso como um fator ordenado (ou qualquer termo que o software use). Aqui, a codificação é arbitrária e escondida das pessoas que respondem à pergunta.

Mas muitas vezes também as pessoas são questionadas (digamos) em uma escala de 1 a 5, como você avalia algo? Os exemplos são abundantes: sites, esportes, outros tipos de competições e até mesmo educação. Aqui, as pessoas estão vendo uma escala e sendo solicitadas a usá-la. É amplamente conhecido que números não inteiros fazem sentido, mas você só está autorizado a usar números inteiros como uma convenção. É esta escala ordinal? Alguns dizem que sim, outros dizem que não. Colocado de outra forma, parte do problema é que o que é escala ordinal é em si uma área difusa ou debatida.

Considere novamente as notas para o trabalho acadêmico, digamos de E a A. Freqüentemente, essas notas também são tratadas numericamente, digamos como 1 a 5, e rotineiramente as pessoas calculam médias para alunos, cursos, escolas, etc. e fazem análises adicionais desses dados. Embora seja verdade que qualquer mapeamento para pontuações numéricas é arbitrário, mas aceitável, desde que preserve a ordem, no entanto na prática, as pessoas que atribuem e recebem as notas sabem que as notas têm equivalentes numéricos e sabem que as notas terão uma média.

Uma razão pragmática para o uso de meios é que medianas e modos geralmente são resumos insatisfatórios das informações nos dados. Suponha que você tenha uma escala que vai de discordo totalmente a concordo totalmente e, por conveniência, codifique esses pontos de 1 a 5. Agora imagine uma amostra com os códigos 1, 1, 2, 2, 2 e outra 1, 2, 2, 4, 5. Agora levante suas mãos se você acha que mediana e modo são os únicos resumos justificáveis ​​porque é uma escala ordinal. Agora levante as mãos se você achar que a média também é útil, independentemente de as somas estarem bem definidas, etc.

Naturalmente, a média seria um resumo hipersensível se os códigos fossem os quadrados ou cubos de 1 a 5, digamos, e isso pode não ser o que você deseja. (Se o seu objetivo é identificar rapidamente os grandes lançadores, pode ser exatamente o que você deseja!) Mas é precisamente por isso que a codificação convencional com códigos inteiros sucessivos é uma escolha prática, porque geralmente funciona muito bem na prática. Esse não é um argumento que tenha peso para os teóricos da medição, nem deveria, mas os analistas de dados deveriam estar interessados ​​em produzir resumos ricos em informações.

Concordo com quem diz: use toda a distribuição de frequências de notas, mas não é esse o ponto em questão.


5 respostas 5

Não se esqueça do pacote rms, de Frank Harrell. Você encontrará tudo o que precisa para ajustar e validar GLMs.

Aqui está um exemplo de brinquedo (com apenas um preditor):

Agora, usando a função lrm,

Você logo obterá muitos índices de ajuste de modelo, incluindo Nagelkerke $ R ^ 2 $, com impressão (mod1b):

Aqui, $ R ^ 2 = 0,445 $ e é calculado como $ left (1- exp (- text/ n) right) / left (1- exp (- (- 2L_0) / n) right) $, onde LR é o $ chi ^ 2 $ stat (comparando os dois modelos aninhados que você descreveu), enquanto o denominador é apenas o valor máximo para $ R ^ 2 $. Para um modelo perfeito, esperaríamos $ text= 2L_0 $, isso é $ R ^ 2 = 1 $.

Ewout W. Steyerberg discutiu o uso de $ R ^ 2 $ com GLM, em seu livro Modelos de Predição Clínica (Springer, 2009, § 4.2.2 pp. 58-60). Basicamente, a relação entre a estatística LR e $ R ^ 2 $ de Nagelkerke é aproximadamente linear (será mais linear com baixa incidência). Agora, conforme discutido no tópico anterior que vinculei em meu comentário, você pode usar outras medidas como a estatística $ c $, que é equivalente à estatística AUC (há também uma bela ilustração na referência acima, consulte a Figura 4.6).

Para obter facilmente um pseudo $ R ^ 2 $ de McFadden para um modelo ajustado em R, use o pacote "pscl" de Simon Jackman e use o comando pR2. http://cran.r-project.org/web/packages/pscl/index.html

Cuidado com o cálculo de Pseudo- $ R ^ 2 $:

Pseudo- $ R ^ 2 $ de McFadden é calculado como $ R ^ 2_M = 1- frac<>_><>_> $, onde $ ln hat_$ é a probabilidade de log do modelo completo, e $ ln hat_$ é a probabilidade logarítmica do modelo com apenas interceptação.

Duas abordagens para calcular Pseudo- $ R ^ 2 $:

Use deviance: uma vez que $ deviance = -2 * ln (L_) $, $ null.deviance = -2 * ln (L_)$

pR2 = 1 - mod $ deviance / mod $ null.deviance # funciona para glm

Mas a abordagem acima não funciona para Pseudo $ R ^ 2 $ fora da amostra

Use a função "logLik" em R e definição (também funciona para dentro da amostra)

1, family = binomial, data = insample) 1- logLik (mod) / logLik (mod_null)

Isso pode ser ligeiramente modificado para calcular Pseudo $ R ^ 2 $ fora da amostra

Pseudo-R fora da amostra

Normalmente, o pseudo- $ R ^ 2 $ fora da amostra é calculado como $ R_p ^ 2 = 1− frac<>><>>, $ onde $ L_$ é o log da probabilidade para o período fora da amostra com base nos coeficientes estimados do período dentro da amostra, enquanto e $ L_$ é o log da probabilidade para o modelo somente de interceptação para o período fora da amostra.

pred.out.link & lt- predizer (mod, outSample, type = "link") mod.out.null & lt- gam (Padrão

1, family = binomial, data = outSample) pR2.out & lt- 1 - sum (outSample $ y * pred.out.link - log (1 + exp (pred.out.link))) / logLik (mod.out. nulo)

agegp + tobgp * alcgp, data = esoph, family = binomial) e chame model1 $ deviance e -2 * logLik (model1). $ endgroup $ & ndash Tomas 2 de novembro de 19 às 11h22

se o desvio for proporcional à probabilidade de log, e usarmos a definição (ver por exemplo o de McFadden aqui)

então o pseudo- $ R ^ 2 $ acima seria $ 1 - frac <198,63> <958,66> $ = 0,7928

A questão é: o desvio relatado é proporcional à probabilidade de log?

Se é fora da amostra, então eu acredito que $ R ^ 2 $ deve ser calculado com as verossimilhanças de acordo como $ R ^ 2 = 1- frac<>><>> $, onde $ ll_$ é o log da probabilidade dos dados de teste com o modelo preditivo calibrado no conjunto de treinamento e $ ll_$ é o log da probabilidade dos dados de teste com um modelo com apenas uma constante ajustada no conjunto de treinamento e, em seguida, usa a constante ajustada para prever no conjunto de teste calculando as probabilidades e, portanto, obter o log da verossimilhança.


Assista o vídeo: ΨΗΦΙΟΠΟΙΗΣΗ ΓΕΩΛΟΓΙΚΟΥ ΧΑΡΤΗ ΣΤΟ QGIS (Outubro 2021).