<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">Senhores, bom dia!</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Fiz o exercício abaixo, me preocupando mais com uso de memória. Nesse quesito o pacote {raster} traz grandes vantagens. Além disso, formatos binários otimizam a leitura e ocupam menor espaço em disco.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style=""><div class="gmail_default"><font face="monospace, monospace">### <code r></font></div><div class="gmail_default"><font face="monospace, monospace">setwd("D:/Temp")</font></div><div class="gmail_default"><font face="monospace, monospace">sapply(c("raster", "sp", "rgdal"), require, char=T)</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">url0 <- "<a href="http://download.osgeo.org/geotiff/samples/spot/chicago/UTM2GTIF.TIF">http://download.osgeo.org/geotiff/samples/spot/chicago/UTM2GTIF.TIF</a>"</font></div><div class="gmail_default"><font face="monospace, monospace">fn   <- basename(url0)</font></div><div class="gmail_default"><font face="monospace, monospace"># download.file(url0, fn, mode="wb")</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">### Leitura com pacotes {raster} e {readGDAL}...</font></div><div class="gmail_default"><font face="monospace, monospace">### O pacote {raster} acessa informações do arquivo em disco, </font></div><div class="gmail_default"><font face="monospace, monospace">### enquanto {readGDAL} carrega na memória.</font></div><div class="gmail_default"><font face="monospace, monospace">img1 <- raster(fn)</font></div><div class="gmail_default"><font face="monospace, monospace">img2 <- readGDAL(fn)</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">par(mfrow=c(1,2))</font></div><div class="gmail_default"><font face="monospace, monospace">image(img1, asp=T, axes=F, ann=F); image(img2, asp=T)</font></div><div class="gmail_default"><font face="monospace, monospace">par(mfrow=c(1,1))</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">print(object.size(img1), units="Kb") #   11.4 Kb</font></div><div class="gmail_default"><font face="monospace, monospace">print(object.size(img2), units="Kb") # 2540.9 Kb</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">### Você pode converter seu objeto para {raster}...</font></div><div class="gmail_default"><font face="monospace, monospace">### Mas em princípio ele vai ficar residente na memória</font></div><div class="gmail_default"><font face="monospace, monospace">img2a <- raster(img2)</font></div><div class="gmail_default"><font face="monospace, monospace">print(object.size(img2a), units="Kb") # 2548 Kb</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">### Para economizar memória, você pode salvar no disco e reabrir com {raster}</font></div><div class="gmail_default"><font face="monospace, monospace">### Pode usar qualquer formato aceito por raster, inclusive ascii</font></div><div class="gmail_default"><font face="monospace, monospace">### Mas formatos binários otimizam o acesso e leitura</font></div><div class="gmail_default"><font face="monospace, monospace">writeFormats()</font></div><div class="gmail_default"><font face="monospace, monospace">writeRaster(img2a, "novo.tif", "GTiff", overwrite=F)</font></div><div class="gmail_default"><font face="monospace, monospace">writeRaster(img2a, "novo.asc", "ascii", overwrite=F)</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">rm(img2, img2a) ### apagar intermediários pra liberar memória</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><div class="gmail_default"><font face="monospace, monospace">system.time(img3a <- raster("novo.tif")) # 0.03s</font></div><div class="gmail_default"><font face="monospace, monospace">system.time(img3b <- raster("novo.asc")) # 0.06s</font></div><div class="gmail_default"><br></div></div><div class="gmail_default"><font face="monospace, monospace">print(object.size(img3a), units="Kb") # 11.4 Kb</font></div><div class="gmail_default"><font face="monospace, monospace">print(object.size(img3b), units="Kb") # 11.3 Kb</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace"><a href="http://file.info">file.info</a>(dir(patt="novo\\.")) ### tamanho no disco</font></div><div class="gmail_default"><font face="monospace, monospace">#             size isdir mode               mtime               ctime               atime exe</font></div><div class="gmail_default"><font face="monospace, monospace"># novo.asc 2289309 FALSE  666 2016-02-18 05:50:06 2016-02-18 05:50:02 2016-02-18 05:50:02  no</font></div><div class="gmail_default"><font face="monospace, monospace"># novo.tif 1249547 FALSE  666 2016-02-18 05:49:48 2016-02-18 05:49:48 2016-02-18 05:49:48  no</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">###  tamanho no disco em "Mb"</font></div><div class="gmail_default"><font face="monospace, monospace"><a href="http://file.info">file.info</a>(dir(patt="novo\\."))$size/1024^2 # [1] 2.183255 1.191661</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">par(mfrow=c(1,2))</font></div><div class="gmail_default"><font face="monospace, monospace">image(img3a, asp=T); image(img3b, asp=T)</font></div><div class="gmail_default"><font face="monospace, monospace">par(mfrow=c(1,1))</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">### Geotiff preserva mais atributos...</font></div><div class="gmail_default"><font face="monospace, monospace">img3a</font></div><div class="gmail_default"><font face="monospace, monospace"># class       : RasterLayer </font></div><div class="gmail_default"><font face="monospace, monospace"># dimensions  : 929, 699, 649371  (nrow, ncol, ncell)</font></div><div class="gmail_default"><font face="monospace, monospace"># resolution  : 10, 10  (x, y)</font></div><div class="gmail_default"><font face="monospace, monospace"># extent      : 444650, 451640, 4631220, 4640510  (xmin, xmax, ymin, ymax)</font></div><div class="gmail_default"><font face="monospace, monospace"># coord. ref. : +proj=utm +zone=16 +datum=NAD27 +units=m +no_defs +ellps=clrk66 +nadgrids=@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat </font></div><div class="gmail_default"><font face="monospace, monospace"># data source : D:\Temp\novo.tif </font></div><div class="gmail_default"><font face="monospace, monospace"># names       : novo </font></div><div class="gmail_default"><font face="monospace, monospace"># values      : 6, 255  (min, max)</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">img3b</font></div><div class="gmail_default"><font face="monospace, monospace"># class       : RasterLayer </font></div><div class="gmail_default"><font face="monospace, monospace"># dimensions  : 929, 699, 649371  (nrow, ncol, ncell)</font></div><div class="gmail_default"><font face="monospace, monospace"># resolution  : 10, 10  (x, y)</font></div><div class="gmail_default"><font face="monospace, monospace"># extent      : 444650, 451640, 4631220, 4640510  (xmin, xmax, ymin, ymax)</font></div><div class="gmail_default"><font face="monospace, monospace"># coord. ref. : NA </font></div><div class="gmail_default"><font face="monospace, monospace"># data source : D:\Temp\novo.asc </font></div><div class="gmail_default"><font face="monospace, monospace"># names       : novo </font></div><div class="gmail_default"><font face="monospace, monospace">### </code></font></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><font face="arial, helvetica, sans-serif" style="font-size:small"><div style="font-family:'trebuchet ms',sans-serif;display:inline">​</div></font><font face="arial, helvetica, sans-serif" style="font-size:12.8px"><span style="font-size:small">================================================</span><br>Éder Comunello</font><div style="font-size:12.8px"><span style="font-family:arial,helvetica,sans-serif">Agronomist (UEM), MSc in Environ. Sciences (UEM)</span><font face="arial, helvetica, sans-serif"><br></font></div><div style="font-size:12.8px"><div style="font-size:small"><span style="font-family:arial,helvetica,sans-serif">DSc in Agricultural Systems Engineering (USP/Esalq)</span><br></div><div><span style="font-size:small">Brazilian Agricultural Research Corporation (</span><font face="arial, helvetica, sans-serif" style="font-size:small">Embrapa)</font></div><div><div><font face="arial, helvetica, sans-serif" style="font-size:small">Dourados, MS, Brazil </font><font face="arial, helvetica, sans-serif" size="2">|<O>|</font></div><div style="font-size:small"><span style="font-family:arial,helvetica,sans-serif">================================================</span><br></div></div></div><div style="font-size:small"><font face="arial, helvetica, sans-serif">GEO, </font>-22.2752, -54.8182, 408m<span style="font-family:arial,helvetica,sans-serif"><br></span></div><div style="font-size:12.8px"><span style="font-size:small;font-family:arial,helvetica,sans-serif">UTC-04:00 / DST: UTC-03:00</span></div><div><div><div><br></div><div><br></div></div><div style="font-size:small"><br></div></div></div></div></div></div></div></div></div></div></div>
<br><div class="gmail_quote"><br></div></div></div>