######## USO DO PACOTE 'sf' #### A - Simple Features in R ### 1. Simple Features (SF) # Refere-se a um formato padrão que descreve objetos do mundo real # e pode ser representado em computadores, com ênfase na sua geometria espacial. # Descreve como estes objetos pode ser armazenados e reecuperados de bancos de # dados e quais opera??es geom?tricas podem ser definidas para eles. # Pacote sf (http://github.com/r-spatial/sf) # - objetiva, no longo prazo, suceder o pacote sp # Features ou feições - atributos espaciais e não espaciais # geometria com descrção onde, no planeta, está localizada # outros atributos - descrição de outras propriedades # Dimensões # Feições compostas por pontos - coordenadas X e Y # dimensão Z - por exemplo, altitude ### Tipos comuns de geometria de SF # point, linestring, polygon, multipoint, multilinestring,multipolygon, # geometrycollection (conjunto de geom de qq tipo, exceto esta) ### Sistema de Referência de Coordenadas # CRS: coordinate reference system # coordenas geográficas ou projetadas ### 2. Organização da SF no R # todas as funções e métodos no pacote sf q operam em dados espaciais # são prefixados por 'st_' (espacial e temporal) # armazenamento das feições geográficas em objetos do tipo 'data.frame' # geometrias não são colunas simples (X, Y, Z) - colocas em 'list-column' # 'list-column' - lista com o mesmo nº de registros do 'data-frame', com # cada elemento da lista contendo as inform sobre a geometria de uma feição. ## 2.1 Três classes usadas para representar SF: # 'sf': a tabela (data-frame) com os atributos e geometrias das feições # (q contém) # 'sfc': a 'list-column' com as geometrias de cd feição (registros) # (q é composta por) # 'sfg': a geometria da feição de um SF individual ## 2.1 'sf': objetos com SF # geometrias e atributos colocados conjuntamente em objetos 'sf' # comando para ler o dataset 'nc' - arquivo contido no pacote sf # instalar e carregar pacote 'sf' library(sf) # lendo o mapa 'nc' # clicar em upload - buscar pasta compactada - shape composto de vários arquivos nc <- st_read("nc.shp") # comentários sobre as saídas # CRS: epsg (SRID): 4267 ## proj4string: +proj=longlat +datum=NAD27 +no_defs # epsg: European Petroleum Survey Group # entrar no site https://www.epsg-registry.org/ # digitar o c?digo (retrive by code) - para detalhes do CRS # classe do objeto class(nc) # classe sf e é um data.frame q contém uma 'list-column' com geometrias str(nc) # ou em "Environment - Data" - col 15 - geometry!!! head(nc) # ou clicar no banco em "Environment - Data" attr(nc,'sf_column') # coluna com geometria # com o comando 'print', abaixo, apresentamos as três primeira feições. # com os seus atributos e uma versão abrevida de sua geometria print(nc[11:15],n=3) # prim 3 linhas das col 11 a 15 - col 15 - geometry!!! # identificando as três classes usadas para representar as SF: # sf: cada uma das linhas do data.frame # NWBIR74 BIR79 SID79 NWBIR79 geometry # 1 10 1364 0 19 MULTIPOLYGON (((-81.47276 3... # 2 10 542 3 12 MULTIPOLYGON (((-81.23989 3... # 3 208 3616 6 260 MULTIPOLYGON (((-80.45634 3... # 'sfc': a 'list-column' com as geometrias de cd feição (registros) # geometry # MULTIPOLYGON (((-81.47276 3... # MULTIPOLYGON (((-81.23989 3... # MULTIPOLYGON (((-80.45634 3... # e 'sfg': a geometria da feição de um SF individual # geometry # MULTIPOLYGON (((-81.47276 3... ## metodos para objetos sf methods(class='sf') # Exemplo: transf obj sf em data.frame nc.no_sf <- as.data.frame(nc) class(nc.no_sf) str(nc.no_sf) head(nc.no_sf) plot(nc.no_sf) # deixou dde ser um objeto sf - perdeu refer espacial plot(nc) # comando plot q muitas opções - depois as veremos! ## 2.2 'sfc' - a 'list-column' com a geometria da SF # 'sfc' - coluna do data.frame sf q contém a geometria - lista da classe 'sfc' # podemos apresentar esta geometria usando os comando abaixo: nc$geom # mostra a geometria das 5 primeiras feições nc[[15]] # o mesmo, mas indexando a coluna 15 - da geometria (nc_geom <- st_geometry(nc)) # cria um novo objeto 'sf' somente com geometria plot(nc_geom) # olhando as informações completas de determinada feição # no caso, a feição nº 1 nc_geom[[1]] # temos todas as coordenadas dos ptos q formam a feição! # atributos don objeto 'nc_geom' attributes(nc_geom) # objeto da classe 'sfc' - sem outros atributos! ### 3 - Writing (exportando o mapa!) st_write(nc_geom,"nc_geom.shp") # fazer o download do mapa # marcar os quatro arquivos do shape, ir em 'More' e 'Exportar' # a exportação é feita com os arquivos compactados ### 4 - CRS e transformações # objetos 'sfc' - dois atributos para armazenar o CRS: # epsg e proj4string # proj4string - descri??o do CRS - http://proj4.org/ # epsg - ID de um CRS # conversão de CRS long/lat NAD27 para webmercator (EPSG: 3857) # epsg: European Petroleum Survey Group # entrar no site https://www.epsg-registry.org/ - está em reconstrução! # digitar o código (retrive by code) - para detalhes do CRS # podemos buscar informações sobre os CRS na internet! nc.web_mercator <- st_transform(nc,3857) print(nc.web_mercator) # CRS alterado! # epsg (SRID): 3857 # proj4string: +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs ## Fazendo o downloado do script # clica no scritp, em 'More' e 'Exportar'