\documentclass[a4paper, oneside, 10pt]{article}
\usepackage[unicode]{hyperref}
\usepackage[utf8x]{inputenc}
\usepackage[english]{babel}
\date{\today}
\title{}
\author{}
\begin{document}



Bióloga formada pela Universidade Federal do Rio Grande do Sul em 2012/2. Ingressante no Mestrado em Ecologia no IB-USP em 2013, com o Projeto de Mestrado intitulado ,,Efeitos da quantidade de vegetação nativa, tipo de matriz e configuração da paisagem sobre a efetividade dos serviços ecossistêmicos de regulação da erosão e de estoque de carbono no solo", sob a orientação do Prof. Dr. Jean Paul Metzger, no Laboratório de Ecologia de Paisagem e Conservação.





Plano A – Cálculo de atrito

O uso do solo no entorno de fragmentos de vegetação nativa, pode influenciar os
processos ecossistêmicos dentro deste fragmento, pois seu uso e vulnerabilidade
mudarão de acordo com a classe de uso do entorno. Dessa forma, calcular atrito é uma
operação muito frequênte em ecologia da paisagem, porém existem diversas formas de
fazê-lo. Existem índices de contraste de borda automatizados por programas de SIG,
entretanto esses índices só consideram o contato de direto da borda. Automatizar uma
forma de calcular o atrito, sem ter que utilizar operações complexas em programas de
SIG e sim, manipulando somente a matriz de dados, é uma opção útil e interessante e
permite considerar a influência de classes de uso do solo que não estão diretamente em contato com o fragmento, mas que podem influenciar na qualidade do fragmento.
A função automatizaria o cálculo do valor do atrito de fragmentos de vegetação nativa
com os tipos de uso do solo. Os dados de entrada seriam um mapa de distância (matriz
gerado por um programa de SIG) e uma matriz de contraste da vegetação com cada tipo
de uso do solo. Os dados de saída seriam o valor de atrito para cada fragmento ou para cada classe de uso do solo e os dados de média da área, desvio padrão e área maxima e mínima.
Os passos da função seriam:
1.Gerar uma matriz com os valores de atrito de cada pixel de vegetação
nativa com cada pixel de outro tipo de uso do solo com o qual tivesse contato.
2.Somar os valores de atrito de cada pixel gerando os valores de atrito para
cada fragmento ou para cada classe de uso do solo.
3.A função também poderia gerar dados de média da área e desvio padrão dos fragmentos de cada classe e área máxima e mínima dos fragmentos.

Plano B - Sorteio de transectos

Escolher áreas de amostragem de dados pode ser uma tarefa árdua quando é necessário
considerar mais de um fator como o tipo de uso do solo e a declividade. A tarefa torna-se ainda mais árdua no momento de sortear transectos dentro das áreas escolhidas. Fazeruma função que automatize esse processo considerando todos os fatores necessáriospouparia um tempo precioso na coleta de dados.
Os dados de entrada seria uma matriz de tipo de uso do solo e as coordenadas
aproximadas (coordenadas centrais) de cada pixel e um mapa de declividade.
A função sortearia as áreas a serem amostradas de acordo com o tipo de uso do solo
escolhido e a declividade (cujos intervalos poderiam ser escolhidos) e depois sortearia um pixel de início do transecto e uma direção em cada uma dos fragmentos escolhidos. Os dados de saída seriam a coordenada aproximada do pixel de início e do final do transecto.
*seria necessário que o programa identificasse o pixel adjacente como similar ou
diferente do pixel analisado para que conseguisse definir os limites do fragmento.
**o tamanho do transecto também deve poder ser escolhido. 

\section{\texorpdfstring{Comentário}{Comentario}}
\label{sec:comentario}


Karine, acho que a sua proposta A é bastante interessante e está bem dimensionada. A proposta B é um tanto simples, porém creio que você não precisará usá-la.

\section{\texorpdfstring{Mudança na proposta A - EXECUTADA}{Mudana na proposta A  EXECUTADA}}
\label{sec:mudana_na_proposta_a__executada}


Na segunda-feira, dia 15.04, alterei minha proposta de função depois de conversar com o Leandro Tambosi(Doutorando do LEPAC), com o monitor Danilo e com o Prof. Alexandre. Devido ao tempo que perderia com a manipulação dos dados(produção do mapa de distâncias no ArcGis)antes de rodar os dados no R, me foi sugerido que alterasse minha função. Dessa forma, a proposta de função que executarei terá como objetivo produzir um mapa de distâncias entre polígonos de determinada classe, automatizando o demorado processo de gerar esse mapa no ArcGis, a partir de um mapa de uso do solo em formato .shp como dado de entrada e, gerar dois arquivos de saída com (1)identificador e área dos polígonos e (2)identificador do polígono x, identificador do polígono y e distâncias entre os polígonos x e y. 

\section{\texorpdfstring{MINHA FUNÇÃO}{MINHA FUNAO}}
\label{sec:minha_funao}


\textless code\textgreater 

\#CÓDIGO DA FUNÇÃO
\begin{verbatim}
 mapaDist<-function(x="",Dir="",dirOutShape="",classe="")
{
  require(sp)#Carrega os pacotes necessários#
  require(plyr)
  require(maptools)
  require(rgeos)
  require(reshape)
setwd(Dir)	#Define o diretório de trabalho#
shape<-readShapePoly(x)	#Lê o arquivo em formato shape e salva em um objeto chamado shape.#
  Ident<-row.names(shape[1])	#Copia os nomes das linhas do arquivo de entrada (.shp) para um objeto chamado Ident.#
shape$Ident<-Ident		#Cria identificador para os polígonos, inserindo o objeto da classe vetor (Ident) em uma coluna do objeto shape.#
selecao=shape[shape$Id_classe==classe,]	#Seleciona as classes de uso definidas pelo argumento "classe" na coluna Id_classe do arquivo de entrada, criando um objeto chamado sulecao.#
selecao$gArea<-gArea(selecao, byid=T)		#Calcula a área dos polígonos do objeto selecao inserindo em uma coluna chamada gArea.#
dist<-gDistance(spgeom1=selecao,spgeom2=NULL, byid=TRUE)	#Calcula uma matriz de distâncias entre os polígonos da classe de uso selecionada que compoem o objeto selecao, salvando-a em um objeto chamado dist.#
selecao.dist<- melt(dist)[melt(upper.tri(dist))$value,]	#Cria um data frame chamado selecao.dist, com identificadores e distâncias dos polígonos, a partir da matriz de distância.#
  write.table(selecao.dist,paste(x,"_dist.txt",sep=""))		#Cria um arquivo .txt a partir do data frame selecao.dist (contendo o identificadore e as distâncias entre polígonos); esse arquivo é salvo no diretório definido por "Dir"#
  write.table(selecao,paste(x,"_out.txt",sep=""))		#Cria um arquivo .txt, a partir do objeto selecao, contendo o identificador (Ident), a área (gArea) e mantém as colunas do arquivo orginial;esse arquivo possui o mesmo nome do arquivo inicial acrescido de "_out" e é salvo no diretório definido por "Dir"#
selecao.out<-readLines(paste(x,"_out.txt",sep=""))		#Lê o arquivo .txt criado no comando anterir e salva-o em um objeto chamdo selecao.out#
  proj<-readLines(paste(x,".prj",sep=""))		 #Lê o arquivo de projeção espacial do shape de entrada (.prj) e salva-o em um objeto chamado proj.# 
writeLines(proj,paste(Dir,"shape_out.prj",sep=""),sep="")	#Copia a projeção do shape original para o novo shape que será criado, criando um arquivo .prj com o nome shape_out, a partir do objeto proj.#
  writePolyShape(selecao, paste(dirOutShape,"shape_out.shp",sep="\\"))	#Cria arquivo shape (aquivos .shp,.shx e .dbf) com o nome shape_out no diretório definido pelo argumento "dirOutShape".#
result<-list(selecao.dist,selecao.out)	#Salva uma lista com os objetos selecao.dist e selecao.out no objeto result.#
return(result)			        #Retorna o objeto result.#
 }
<code>

\end{verbatim}


\section{\texorpdfstring{HELP}{HELP}}
\label{sec:help}


\textless code\textgreater 

\#MEU HELP

mapaDist     package:desconhecido		                                                    R Documentation

Calcula uma matriz de distâncias entre os polígonos da classe de uso escolhida a partir de um arquivo de entrada de uso da terra no formato shape.

DESCRIÇÃO

mapaDist calcula um mapa de distâncias entre os polígonos da classe de uso da terra informada pelo usuário no argumento ,,classe",a partir de um arquivo no formato shape, com uso da função gDistance;
Padroniza o arquivo de entrada (shapefile), criando uma coluna de identificador (Ident) e calculando a área (coluna (gArea)) para os polígonos da classe de uso selecionada.
Cria arquivos de saída com as seguintes informações dos polígonos da classe de uso selecionada para o cálcula das distâncias: (1)identificador e área;(2)identificadores e distância entre duplas de polígonos; (3)arquivo formato shape; (4)arquivo com projeção espacial e georreferência do shape. 

USO

mapaDist(x=,,",Dir=,,",dirOutShape=,,",classe=,,")

ARGUMENTOS

x 		Diretório e nome do arquivo (.shp) de entrada; não deve ter a extensão o nome e deve ser colocado entre aspas. O arquivo de entrada deve ter o formato shapefile (.shp,.shx,.dbf,.prj,.sbn,.sbx,.xml).

Dir 		Diretório onde está salvo o arquivo de entrada e onde serão salvos parte dos arquivos de saída; Esse diretório não deve ser mais longo do que dois níveis da raíz. 

dirOutShape 	Diretório onde será salvo o shapefile gerado pela função; Esse diretório não deve ser mais longo do que dois níveis da raíz. Ele é necessário, pois o shape não salva no mesmo diretório dos outros arquivos.

classe 		Classe de uso do solo que se deseja calcular a distância entre os polígonos; A identificação das classes deverá estar em uma coluna chamada Id\_classe.

DETALHES

A função mapaDist automatiza a leitura do arquivo shape e o cálculo da matriz de distância (mapa de distâncias) entre polígonos de uma mesma classe de uso da terra. Um os usos dessa função é a produção da matriz de distâncias, necessária para o cálculo de índices de conectividade. 
Os arquivos de saída .txt possuem formato ideal para ser usado no cálculo de conectividade no programa Conefor Sensinode. O shapefile de saída (shape\_out) com os polígonos da classe de uso selecionadas facilitam que outros dados (ex.: conectividade e distâncias) sejam cruzados com eles.

Os diretórios informados pelos argumentos ,,Dir" e ,,dirOutShape" devem possuir caminho, no máximo, dois níveis distantes da raíz (C:, D:,...). Caso contrário aparecerá uma mensagem de erro (...) e a função não executará. 

O arquivo shape criado pela função é salvo no diretório especificado pelo argumento dirOutShape (diretório de saída do shape), pois a função writePolyShape não executa no mesmo diretório dos outros arquivos

Para abrir o arquivo shape georrerenciado em um programa de SIG é necessário salvar o arquivo .prj (gerado pela função no diretório informado por ,,Dir") na mesma pasta em que estão salvos os arquivos shape (.shp, .dbf e .shx)

São requeridos os pacotes sp, rgeos, maptools,utils,reshape e plyr.

VALOR

Retorna os seguintes objetos:

selecao.dist: data frame com colunas identificador dos poligonos da classe de uso selecionada (Ident) e sua área (gArea).

selecao.out: data frame com identificadores (Ident) e distância entre os polígonos da classe de uso selecionada.

Cria os arquivos:

x\_out:  arquivo .txt com colunas identificador dos poligonos da classe de uso selecionada (Ident) e sua área (gArea). O arquivo é salvo no diretório de trabalho identificado pelo ,,Dir".

x\_dist: arquivo .txt com identificadores (Ident) e distância entre os polígonos da classe de uso selecionada. O arquivo é salvo no diretório de trabalho identificado pelo ,,Dir".

shape\_out: arquivo shape (,,.shp",,,.shx",,,.dbf") com os polígonos da classe de uso do solo selecionada; arquivo é salvo no diretório identificado pelo ,,dirOutShape".

shape\_out: arquivo .prj; sistema de projeção e georreferência do shape criado; é salvo no diretório de trabalho identificado pelo ,,Dir".

ERRO

Ao término da execução da função aparece a seguinte mensagem de aviso: ,,In readLines(paste(x, ".prj,,, sep = ",,)) :  linha final incompleta encontrada em 'x.prj". Entretanto, todos os arquivos são gerados.

AUTORA

Karine Machado Costa
karine.costa@ib.usp.br

EXEMPLOS

Utilizar o arquivo shape\_uso\_R ou uso\_solo\_t2 disponíveis nos links abaixo (arquivos zipadoS).

\textless code\textgreater 

\section{\texorpdfstring{Arquivos para usar no exemplo}{Arquivos para usar no exemplo}}
\label{sec:arquivos_para_usar_no_exemplo}


\href{media/bie5782/01_curso_atual/alunos/trabalho_final/karine.costa97/shape_uso_r.rar}{shape\_uso\_r.rar}
\href{media/bie5782/01_curso_atual/alunos/trabalho_final/karine.costa97/uso_solo_t2.rar}{uso\_solo\_t2.rar}

\section{\texorpdfstring{Função e Help}{Funao e Help}}
\label{sec:funao_e_help}


\href{media/bie5782/01_curso_atual/alunos/trabalho_final/karine.costa97/funcao_karine.txt}{funcao\_karine.txt}
\href{media/bie5782/01_curso_atual/alunos/trabalho_final/karine.costa97/help_karine.txt}{help\_karine.txt}

\end{document}
