[R-br] Problema na conversão de datum: SIRGAS2000 para WGS84
Bia Rebelatto
biafr8 em gmail.com
Qui Dez 3 15:19:46 -02 2020
Olá pessoal!
Após a produção de shapefiles no R, eles apresentaram o seguinte datum:
Geographic Coordinate System:
GCS_WGS_84_with_axis_order_normalized_for_visualization
Datum: D_WGS_1984
Sendo que o que preciso seria:
Geographic Coordinate System: GCS_WGS_1984
Datum: D_WGS_1984
Ou seja, preciso fazer a transformação sem gerar essa extensão de
"with_axis_order_normalized_for_visualization", mas não consigo encontrar
uma solução.
Resumindo o que fiz:
1. Download de dados municipais do IBGE (o datum deles é o SIRGAS2000)
2. Transformação dos dados do IBGE para o datum que preciso (WGS84) com a
função 'st_transform':
dadosibge <- st_transform(dadosibge, 4326)
3. União destes dados do IBGE com minha planilha de dados, mais a
transformação de objeto st em sf:
df <- inner_join(dadosibge, df, by="id") %>%
st_as_sf(coords=c("lon","lat"), crs=4326)
4. Transformação do data frame em objeto espacial:
df <- as(df, "Spatial")
5. Exportação do shapefile:
writeOGR(df, dsn = "diretorio", layer = i, driver = 'ESRI Shapefile')
Obs.: fiz com múltiplas planilhas, então o código está em um loop.
Segue o meu código:
###Pacotes
x<-c("geobr","ggplot2","dplyr","RColorBrewer","ggspatial","maps","mapdata","rworldmap","maptools","mapproj","ggmap","sf","raster","spData","spDataLarge",
"rgdal")
lapply(x, require, character.only=T)
###Carregar dados IBGE
##All municipalities limits of all states
spatial <- read_municipality(code_muni = 'all', year = 2019)
##Check CRS - If this fuction return "NA", the CRS is unknown
st_is_longlat(spatial)
##Verify the DATUM. In this case, shows SIRGAS 2000
st_crs(spatial)
##Transform SGC SIRGAS 2000 to WGS84
###WGS84 EPSG code: 4326
spatial <- st_transform(spatial, 4326)
st_crs(spatial)
class(spatial)
###Carregar diretorio dos meus dados
setwd('diretorio')
list.files()
alldata = list.files()
###Loop para exportar varios shapefiles
for (i in alldata) {
df = read.csv(i, sep = ";", stringsAsFactors = FALSE) %>%
#Unindo meus dados com o df do IBGE
df <- inner_join(spatial_f, df, by="id") %>%
st_as_sf(coords=c("lon","lat"), crs=4326)
#Transformando df em dados espaciais
df <- as(df, "Spatial")
#Exportando shapefile
writeOGR(df, dsn = "C:/Users/Bianca/Desktop/ipam_consult/shapes_test",
layer = i, driver = 'ESRI Shapefile')
}
Agradeço desde já!
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20201203/b2734d16/attachment.html>
Mais detalhes sobre a lista de discussão R-br