<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>bioclim | Gabriel Rodrigues</title>
    <link>/tag/bioclim/</link>
      <atom:link href="/tag/bioclim/index.xml" rel="self" type="application/rss+xml" />
    <description>bioclim</description>
    <generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator><language>pt</language><lastBuildDate>Fri, 30 Apr 2021 00:00:00 +0000</lastBuildDate>
    <image>
      <url>/images/icon_hu0b7a4cb9992c9ac0e91bd28ffd38dd00_9727_512x512_fill_lanczos_center_2.png</url>
      <title>bioclim</title>
      <link>/tag/bioclim/</link>
    </image>
    
    <item>
      <title>SDM para prever a distribuição da Lontra neotropical</title>
      <link>/post/sdm_lontra/sdm_lontra/</link>
      <pubDate>Fri, 30 Apr 2021 00:00:00 +0000</pubDate>
      <guid>/post/sdm_lontra/sdm_lontra/</guid>
      <description>


&lt;p&gt;Cada vez mais dados sobre a distribuição de espécies estão sendo compilados e disponibilizados gratuitamente em diversas plataformas (GBIF, iNaturalist, CITES). Ao mesmo tempo, dados climáticos cada vez mais precisos são gerados e disponibilizados. Isso traz enormes possibilidades para testar e comparar a área de ocorrência de espécies de interesse para diversos propósitos. O conjunto de ferramentas conhecido como &lt;strong&gt;Species Distribution Modeling (SDM)&lt;/strong&gt; combinam dados de ocorrência (variável resposta) com parâmetros ambientais (variáveis preditoras), geralmente são utilizados para prever a distribuição de espécies em cenários atuais e/ou futuros. Para mais detalhes sobre essa abordagem sugiro a leitura de &lt;span class=&#34;citation&#34;&gt;(N. Barve et al. &lt;a href=&#34;#ref-barve2011crucial&#34;&gt;2011&lt;/a&gt;)&lt;/span&gt;. Dito isto, proponho de mostrar de forma breve e superficial a ulização de um &amp;quot;SDM&amp;quot; para prever a área de ocorrência da lontra neotropical (&lt;em&gt;Lontra longicaudis&lt;/em&gt;) utilizando dados climáticos. Ressalto que esse contéudo tem caratér exclusivamente didático e não deve ser tratado como informação de valor cientifico.&lt;/p&gt;
&lt;div id=&#34;lontra-neotropical&#34; class=&#34;section level2&#34;&gt;
&lt;h2&gt;Lontra neotropical&lt;/h2&gt;
&lt;p&gt;Alguns estudos já utilizaram dessa abordagem para testar hipóteses sobre a área de ocorrência &lt;span class=&#34;citation&#34;&gt;(Rheingantz, Menezes, and Thoisy &lt;a href=&#34;#ref-rheingantz2014defining&#34;&gt;2014&lt;/a&gt;)&lt;/span&gt; (citar) e sobre a história evolutiva &lt;span class=&#34;citation&#34;&gt;(Hernández-Romero et al. &lt;a href=&#34;#ref-hernandez2018role&#34;&gt;2018&lt;/a&gt;)&lt;/span&gt; da lontra netropical. O que tornara o trabalho mais facil pois iremos selecionar as váriáveis ambientais que explicam a ocorrência das lontras.&lt;/p&gt;
&lt;div class=&#34;figure&#34;&gt;
&lt;img src=&#34;lontra.jpg&#34; alt=&#34;Lontra longicaudis © Cláudio Dias Timm&#34; /&gt;
&lt;p class=&#34;caption&#34;&gt;&lt;em&gt;Lontra longicaudis&lt;/em&gt; © Cláudio Dias Timm&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;passo-a-passo-sdm&#34; class=&#34;section level2&#34;&gt;
&lt;h2&gt;Passo-a-passo SDM&lt;/h2&gt;
&lt;div id=&#34;coletando-dados&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;Coletando dados&lt;/h3&gt;
&lt;p&gt;Os dados de ocorrência de &lt;em&gt;Lontra longicaudis&lt;/em&gt; foram compilados da plataforma &lt;strong&gt;Global Biodiversity Information Facility (GBIF)&lt;/strong&gt; e estão diposineis no seguinte link: &lt;a href=&#34;https://doi.org/10.15468/dl.jfvbtt&#34; class=&#34;uri&#34;&gt;https://doi.org/10.15468/dl.jfvbtt&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;pacotes-utilizados&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;Pacotes utilizados&lt;/h3&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;#Carregar pacotes
library(&amp;quot;sp&amp;quot;)
library(&amp;quot;raster&amp;quot;)
library(&amp;quot;maptools&amp;quot;)
library(&amp;quot;rgdal&amp;quot;)
library(&amp;quot;dismo&amp;quot;)
library(&amp;quot;tidyverse&amp;quot;)
library(&amp;quot;sf&amp;quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;#Criando diretórios
dir.create(path = &amp;quot;data&amp;quot;)
dir.create(path = &amp;quot;output&amp;quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div id=&#34;carregando-dados&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;Carregando dados&lt;/h3&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;obs.data&amp;lt;- read.csv(file = &amp;quot;occurrence_lontra.csv&amp;quot;, sep = &amp;quot;;&amp;quot;)
obs.data &amp;lt;- obs.data[!is.na(obs.data$decimalLatitude), ] #remover NAs do data.frame
obs.data&amp;lt;- obs.data %&amp;gt;% 
  filter(decimalLongitude &amp;lt; -20) %&amp;gt;% 
  filter(decimalLatitude &amp;gt; -65)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div id=&#34;obtendo-dados-climáticos&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;Obtendo dados climáticos&lt;/h3&gt;
&lt;p&gt;Utilizaremos a base de dados do &lt;code&gt;bioclim&lt;/code&gt;, no entanto, selecionaremos somente as váriaveis climáticas que tenham valor biológico/ecológico (citar trabalho). Bioclim consiste em um conjunto de 19 variáveis climáticas medidas mensalmente e são bastante utilizadas para modelos de distribuição de espécies. Para mais informações acesse: &lt;a href=&#34;https://www.worldclim.org/data/bioclim.html&#34; class=&#34;uri&#34;&gt;https://www.worldclim.org/data/bioclim.html&lt;/a&gt;&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;bioclim.data &amp;lt;- getData(name = &amp;quot;worldclim&amp;quot;,
                        var = &amp;quot;bio&amp;quot;,
                        res = 5,
                        path = &amp;quot;&amp;quot;,
                        lon = max.lon,
                        lat = max.lat)
bioclim.data2&amp;lt;- bioclim.data[[c(&amp;quot;bio1&amp;quot;,&amp;quot;bio2&amp;quot;,&amp;quot;bio4&amp;quot;,&amp;quot;bio5&amp;quot;,&amp;quot;bio7&amp;quot;,&amp;quot;bio12&amp;quot;,&amp;quot;bio14&amp;quot;,&amp;quot;bio15&amp;quot;,&amp;quot;bio18&amp;quot;,&amp;quot;bio19&amp;quot;)]] #selecionando o subconjunto de variáveis&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div id=&#34;determinar-coodernadas-geográficas-para-o-modelo&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;Determinar coodernadas geográficas para o modelo&lt;/h3&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;max.lat &amp;lt;- ceiling(max(obs.data$decimalLatitude))
min.lat &amp;lt;- floor(min(obs.data$decimalLatitude))
max.lon &amp;lt;- ceiling(max(obs.data$decimalLongitude))
min.lon &amp;lt;- floor(min(obs.data$decimalLongitude))
coords &amp;lt;- extent(x = c(min.lon, max.lon, min.lat, max.lat))&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;construindo-o-modelo&#34; class=&#34;section level2&#34;&gt;
&lt;h2&gt;Construindo o modelo&lt;/h2&gt;
&lt;p&gt;Utilizaremos o algoritimo bioclim para modelar a distribuição das espécies em relação as variáveis climáticas. O algoritimo compara a similaridade dos valores climáticos de locais em que a espécie a ser modelada ocorre (dados treino) e com outros locais em que a espécie não foi amostrada. Gerando um valor de probabilidade da ocorrência da espécie em determinada área.&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;bioclim.data1 &amp;lt;- crop(x = bioclim.data2, y = coords) #juntar coordenadas com dados climáticos
obs.data &amp;lt;- obs.data[, c(&amp;quot;decimalLongitude&amp;quot;, &amp;quot;decimalLatitude&amp;quot;)] 
model1 &amp;lt;- bioclim(x = bioclim.data2, p = obs.data) #modelo construido com o algoritimo bioclim
predict.presence1 &amp;lt;- dismo::predict(object = model1, 
                                    x = bioclim.data1, 
                                    ext = coords) #Prever a presença baseado no modelo&lt;/code&gt;&lt;/pre&gt;
&lt;div id=&#34;visualizando-o-modelo&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;Visualizando o modelo&lt;/h3&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# Mapa base
data(wrld_simpl)
plot(wrld_simpl, 
     xlim = c(min.lon, max.lon),
     ylim = c(min.lat, max.lat),
     axes = TRUE, 
     col = &amp;quot;grey95&amp;quot;)

# Adicionar probabilidades do modelo
plot(predict.presence1, add = TRUE,xlim = c(min.lon, max.lon),
     ylim = c(min.lat, max.lat))

# Adicionar pontos observados
points(obs.data$decimalLongitude, obs.data$decimalLatitude, col = &amp;quot;olivedrab&amp;quot;, pch = 20, cex = 0.75)
plot(wrld_simpl, add = TRUE, border = &amp;quot;grey5&amp;quot;)
box()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&#34;/post/SDM_Lontra/SDM_lontra_files/figure-html/unnamed-chunk-7-1.png&#34; width=&#34;672&#34; /&gt;&lt;/p&gt;
&lt;p&gt;O mapa mostra a probabilidade da distribuição da lontra neotropical.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;validando-o-modelo&#34; class=&#34;section level2&#34;&gt;
&lt;h2&gt;Validando o modelo&lt;/h2&gt;
&lt;p&gt;É necessário avaliar o modelo em relação ao seu poder de predição. Para isso o conjunto de dados será separado em &amp;quot;dados treino&amp;quot;, representado 20% dos dados e &amp;quot;dados teste&amp;quot;, representando 80%. Para isso utilizaremos a função kfold do pacote dismo para atribuir a cada observação um grupo aleatório.&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;testing.group &amp;lt;- 1
group.presence &amp;lt;- kfold(x = obs.data, k = 5) 
table(group.presence)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## group.presence
##   1   2   3   4   5 
## 279 279 280 279 279&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;presence.train &amp;lt;- obs.data[group.presence != testing.group, ]
count(presence.train)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;##      n
## 1 1117&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;presence.test &amp;lt;- obs.data[group.presence == testing.group, ]
count(presence.test)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;##     n
## 1 279&lt;/code&gt;&lt;/pre&gt;
&lt;div id=&#34;construindo-o-modelo-e-testando&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;Construindo o modelo e testando&lt;/h3&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# Construir modelo com dados treino
model2 &amp;lt;- bioclim(x = bioclim.data2, p = presence.train)

# Prever a presença do modelo
predict.presence2 &amp;lt;- dismo::predict(object = model2, 
                                    x = bioclim.data2, 
                                    ext = coords)

# Usar dados teste para avaliar o modelo 
bc.eval1 &amp;lt;- evaluate(p = presence.test,   # Dados teste
                     a = presence.train, # Dados treino
                     model = model2,    # Modelo avaliado
                     x = bioclim.data2)    # variáveis climáticas

bc.threshold1 &amp;lt;- threshold(x = bc.eval1, stat = &amp;quot;spec_sens&amp;quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div id=&#34;representação-visual-do-modelo&#34; class=&#34;section level3&#34;&gt;
&lt;h3&gt;Representação visual do modelo&lt;/h3&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;#MAP
world_map &amp;lt;- map_data(&amp;quot;world&amp;quot;)
raster&amp;lt;- as.data.frame(predict.presence2, xy=T) %&amp;gt;% drop_na()
raster2&amp;lt;- raster %&amp;gt;% filter(raster$layer &amp;gt; bc.threshold1 )

g1&amp;lt;- ggplot() +
  geom_raster(data = raster2, aes(x = x, y = y, fill = layer)) +scale_fill_gradient(low=&amp;quot;yellow&amp;quot;,high = &amp;quot;darkgreen&amp;quot;)+ theme_classic() +
  geom_polygon(data = world_map,aes(x = long, y = lat, group = group), fill = NA, col = &amp;quot;black&amp;quot;) + 
  coord_sf(xlim = c(min.lon, max.lon), ylim = c(min.lat, max.lat), expand = FALSE) +xlab(&amp;quot;Longitude&amp;quot;)+ ylab(&amp;quot;Latitude&amp;quot;) +
  geom_point(aes(x=obs.data$decimalLongitude, y = obs.data$decimalLatitude))
g1&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&#34;/post/SDM_Lontra/SDM_lontra_files/figure-html/unnamed-chunk-10-1.png&#34; width=&#34;672&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Como podemos notar a abrangência da distribuição da lontra neotropical aumentou muito com a utilização desse modelo preditivo. Vale ressaltar que esse tipo de modelagem só levou em conta dados climáticos. Provavelmente outros fatores como: (1) barreiras geográficas intransponíveis, (2) presença de predadores/competidores e (3) disturbios antrópicos influenciam a distribuição e ocorrência desse animal.&lt;/p&gt;
&lt;p&gt;Temos então um panorama inicial de como utlizar essa abordagem para prever a ocorrência de uma espécie.&lt;/p&gt;
&lt;p&gt;Qualquer dúvida, correção ou sugestão pode ser encaminhada para &lt;a href=&#34;mailto:gfellipe5@gmail.com&#34;&gt;gfellipe5@gmail.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Obrigado.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#34;referências&#34; class=&#34;section level1 unnumbered&#34;&gt;
&lt;h1&gt;Referências&lt;/h1&gt;
&lt;div id=&#34;refs&#34; class=&#34;references&#34;&gt;
&lt;div id=&#34;ref-barve2011crucial&#34;&gt;
&lt;p&gt;Barve, Narayani, Vijay Barve, Alberto Jiménez-Valverde, Andrés Lira-Noriega, Sean P Maher, A Townsend Peterson, Jorge Soberón, and Fabricio Villalobos. 2011. “The Crucial Role of the Accessible Area in Ecological Niche Modeling and Species Distribution Modeling.” &lt;em&gt;Ecological Modelling&lt;/em&gt; 222 (11). Elsevier: 1810–9.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-hernandez2018role&#34;&gt;
&lt;p&gt;Hernández-Romero, Pablo C, Carla Gutiérrez-Rodríguez, Carolina Valdespino, and David A Prieto-Torres. 2018. “The Role of Geographical and Ecological Factors on Population Divergence of the Neotropical Otter Lontra Longicaudis (Carnivora, Mustelidae).” &lt;em&gt;Evolutionary Biology&lt;/em&gt; 45 (1). Springer: 37–55.&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#34;ref-rheingantz2014defining&#34;&gt;
&lt;p&gt;Rheingantz, Marcelo Lopes, Jorge Fernando Saraiva de Menezes, and Benoit de Thoisy. 2014. “Defining Neotropical Otter Lontra Longicaudis Distribution, Conservation Priorities and Ecological Frontiers.” &lt;em&gt;Tropical Conservation Science&lt;/em&gt; 7 (2). SAGE Publications Sage CA: Los Angeles, CA: 214–29.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
    </item>
    
  </channel>
</rss>
