-
Notifications
You must be signed in to change notification settings - Fork 119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Área de atuação da Sudene e Semiárido #307
Comments
Oi Diego. Aqui tem um passo-a-passo sobre como contribuir com o geobr. O dado do poligono do semiário ja está disponivel no geobr com a função read_semiarid(). O site que voce apontou só tem o de "Área de atuação da Sudene" para o ano de 2022. Você sabe onde encontrar essa informação para outros anos? ps. Podemos utilizar a lista de municípios indicados na regulamentação da Sudene, mas o ideal seria usar os polígonos da malha municipal do IBGE, que são as fronteiras oficiais dos municipios. |
A definição anterior, de 2007, não é georreferenciada pelo órgão, e seguem o disposto na lei complementar 125, de 03/01/2007. O resumo das cidades fora da região NE que integram a área de atuação são listados em página antiga da Sudene, sem utilizar geocódigo IBGE ou outra informação para cruzar com database IBGE. |
Você poderia gerar um
|
dataframe a partir da base geobr::read_municipality # Área de atuação Sudene, ano 2007
# Script para definir data.frame que espelhe delimitação
# conforme LC 125, de 03/01/2007
library("geobr")
#> Loading required namespace: sf
library("tidyverse")
municipios <- read_municipality(year = 2020, showProgress = FALSE)
#> Using year 2020
nordeste <- municipios %>%
select("code_muni", "name_muni", "abbrev_state") %>%
mutate("regiao" = trunc(code_muni / 1e6)) %>%
filter(regiao == 2)
mg_es <- municipios %>%
select("code_muni", "name_muni", "abbrev_state") %>%
filter(code_muni %in% c(3100906, 3101003, 3101706, 3102704, 3102852, 3103405, 3104452, 3104502, 3104700, 3105202, 3106507, 3106606, 3106655, 3107307, 3108255, 3108503, 3108602, 3109402, 3110806, 3111150, 3112307, 3112703, 3113008, 3113503, 3113701, 3115458, 3115474, 3116100, 3116159, 3116506, 3117009, 3117836, 3118809, 3119500, 3120102, 3120151, 3120300, 3120870, 3121001, 3121605, 3122355, 3122454, 3123809, 3124302, 3125408, 3125507, 3125606, 3126208, 3126505, 3126604, 3126703, 3126752, 3126802, 3127057, 3127073, 3127339, 3127354, 3127800, 3128253, 3129608, 3129657, 3130051, 3130655, 3132008, 3132107, 3132305, 3132503, 3132701, 3133303, 3134004, 3134707, 3135050, 3135100, 3135209, 3135357, 3135456, 3135605, 3135803, 3136009, 3136504, 3136520, 3136579, 3136801, 3136959, 3137007, 3137304, 3138104, 3138351, 3138658, 3138682, 3138906, 3139201, 3139250, 3139300, 3140555, 3140852, 3141009, 3141405, 3141801, 3142007, 3142254, 3142700, 3142908, 3143153, 3143302, 3143450, 3144300, 3144656, 3145059, 3145307, 3145356, 3145372, 3145455, 3146206, 3146255, 3146305, 3146552, 3146750, 3147956, 3148509, 3148707, 3149150, 3150000, 3150570, 3151206, 3152131, 3152170, 3152204, 3152402, 3154457, 3154507, 3155108, 3155603, 3156007, 3156502, 3156601, 3157005, 3157104, 3157377, 3157609, 3157658, 3158102, 3160306, 3160454, 3161106, 3162252, 3162401, 3162450, 3162658, 3162708, 3164209, 3165552, 3165909, 3166709, 3166956, 3167103, 3168002, 3168606, 3169703, 3170008, 3170305, 3170529, 3170651, 3170800, 3170909, 3171030, 3171071, 3171600, 3200136, 3200169, 3200359, 3200805, 3200904, 3201001, 3201506, 3201605, 3202108, 3202256, 3203056, 3203205, 3203304, 3203353, 3203502, 3203601, 3203908, 3204005, 3204054, 3204104, 3204252, 3204351, 3204658, 3204708, 3204906, 3205010, 3205150, 3205176))
sudene <- bind_rows(nordeste, mg_es) %>%
arrange(regiao, abbrev_state, name_muni) Created on 2023-03-10 with reprex v2.0.2 Essa informação é suficiente?
|
ótimo. Isso já ajuda muito, @diegomsg. A gente precisa pensar na ideia da função. Faz sentido ter três funções separadas?
Ou uma única função em que a pessoa passa a região de interesse. Algo como:
Qualquer que seja a escolha, a função deve ter um parâmetro Em principio, eu preferiria uma função só, mas isso pode complicar um pouco as coisas porque as leis que definem os muninicios de cada superintendencia podem ter sido publicadas em anos diferentes. Se usarmos funcoes separadas, cada função pode ser seu próprio default value para o parametro |
Acho melhor a abordagem de 1 só função, especialmente quando o interesse é nas regiões de desenvolvimento incentivado, e as superintendências definem subconjuntos destas.
Sendo que Seria possível? Acha interessante a opção |
Eu acho que gosto da ideia do Pensando aqui o comportamento da função: Caso 1
Caso 2
Caso 3
Sugiro isso porque pode ter havido algum desmembramento de municipios entre 2007 e 2015, e isso tornaria a funcao muito mais complicada. O que acha? |
Não entendi a necessidade de erro, já que há disponibilidade de dados das municipalidades nos respectivos anos. O join para as informações Assim o código anteriormente mencionado fica com o ano.
Como o Sendo library(geobr)
library(dplyr)
library(stringr)
geobr_muni <- geobr::list_geobr()
years_available <- geobr_muni$years[8]
current <- str_trim(years_available) %>%
str_extract_all("\\b\\d*\\b") %>%
unlist() %>%
as.integer() %>%
max() |
Estou com um pouco de dificuldade de entender como a implentação do
|
Pensei no
Dê uma olhada no código a seguir, e fique à vontade para alterá-lo. Tive dificuldade com strings e subsets sem precisar de pacotes adicionais. library(geobr)
read_development_region <- function(region, year = 'current', simplified = TRUE, showProgress = TRUE){
# check region input
checkmate::assert_true(region %in% c('NE', 'N', 'all'))
### SUDENE --------------------------------------------------------
if(region == 'NE') {
# years available in database
years <- c(2007, 2021)
# check year input
checkmate::assert_true(year %in% c(years, 'current'))
# assign latest year available if current is chosen
if(year == 'current') year <- max(years)
# Municipalities under Sudene in 1998
sudene_1998 <- c(3101706, 3103405, 3105202, 3106507, 3102704, 3112307,
3113008, 3113503, 3116100, 3117009, 3119500, 3120102,
3121001, 3121605, 3122454, 3125408, 3125606, 3126505,
3132503, 3133303, 3134004, 3134707, 3135803, 3136009,
3136504, 3139201, 3140555, 3141405, 3141801, 3143450,
3145307, 3146305, 3146750, 3148707, 3155108, 3156007,
3156601, 3157104, 3158102, 3160306, 3165909, 3125507,
3167103, 3169703, 3171600, 3200805, 3201506, 3203205,
3203353, 3204351, 3204658, 3204005, 3205010, 3200359,
3200136, 3204708, 3205176, 3203056, 3203304, 3200904,
3205150, 3200169, 3203908, 3204906, 3201605, 3201001,
3204104, 3202108, 3204252, 3203502, 3203601, 3204054)
# Municipalities under Sudene in 2007
sudene_2007 <- c(3100906, 3101003, 3101706, 3102704, 3102852, 3103405,
3104452, 3104502, 3104700, 3105202, 3106507, 3106606,
3106655, 3107307, 3108255, 3108503, 3108602, 3109402,
3110806, 3111150, 3112307, 3112703, 3113008, 3113503,
3113701, 3115458, 3115474, 3116100, 3116159, 3116506,
3117009, 3117836, 3118809, 3119500, 3120102, 3120151,
3120300, 3120870, 3121001, 3121605, 3122355, 3122454,
3123809, 3124302, 3125408, 3125507, 3125606, 3126208,
3126505, 3126604, 3126703, 3126752, 3126802, 3127057,
3127073, 3127339, 3127354, 3127800, 3128253, 3129608,
3129657, 3130051, 3130655, 3132008, 3132107, 3132305,
3132503, 3132701, 3133303, 3134004, 3134707, 3135050,
3135100, 3135209, 3135357, 3135456, 3135605, 3135803,
3136009, 3136504, 3136520, 3136579, 3136801, 3136959,
3137007, 3137304, 3138104, 3138351, 3138658, 3138682,
3138906, 3139201, 3139250, 3139300, 3140555, 3140852,
3141009, 3141405, 3141801, 3142007, 3142254, 3142700,
3142908, 3143153, 3143302, 3143450, 3144300, 3144656,
3145059, 3145307, 3145356, 3145372, 3145455, 3146206,
3146255, 3146305, 3146552, 3146750, 3147956, 3148509,
3148707, 3149150, 3150000, 3150570, 3151206, 3152131,
3152170, 3152204, 3152402, 3154457, 3154507, 3155108,
3155603, 3156007, 3156502, 3156601, 3157005, 3157104,
3157377, 3157609, 3157658, 3158102, 3160306, 3160454,
3161106, 3162252, 3162401, 3162450, 3162658, 3162708,
3164209, 3165552, 3165909, 3166709, 3166956, 3167103,
3168002, 3168606, 3169703, 3170008, 3170305, 3170529,
3170651, 3170800, 3170909, 3171030, 3171071, 3171600,
3200136, 3200169, 3200359, 3200805, 3200904, 3201001,
3201506, 3201605, 3202108, 3202256, 3203056, 3203205,
3203304, 3203353, 3203502, 3203601, 3203908, 3204005,
3204054, 3204104, 3204252, 3204351, 3204658, 3204708,
3204906, 3205010, 3205150, 3205176)
# Municipalities under Sudene in 2021
sudene_2021 <- c(3101003, 3144656, 3144300, 3166709, 3203502, 3204054,
3136959, 3108255, 3116159, 3117836, 3126208, 3132107,
3135209, 3139300, 3142254, 3142700, 3149150, 3162450,
3143450, 3162708, 3105202, 3122355, 3122454, 3136504,
3140555, 3148707, 3157104, 3134707, 3146750, 3158102,
3160306, 3106606, 3157658, 3170305, 3124302, 3127339,
3140852, 3156601, 3113701, 3101706, 3201605, 3204104,
3139250, 3100500, 3108800, 3127503, 3127701, 3128006,
3144359, 3149952, 3157500, 3161601, 3167707, 3171808,
3100609, 3102852, 3104452, 3112307, 3126752, 3132701,
3136553, 3137007, 3139201, 3158201, 3163003, 3164100,
3164506, 3165552, 3100906, 3120151, 3127057, 3136009,
3138906, 3143153, 3145356, 3102704, 3106655, 3120870,
3157377, 3101102, 3118403, 3134103, 3144003, 3154309,
3159506, 3200805, 3202702, 3202900, 3135803, 3101805,
3112653, 3123700, 3125804, 3133204, 3169505, 3102209,
3130903, 3168408, 3156809, 3167103, 3141405, 3141801,
3103405, 3113008, 3116100, 3119500, 3126505, 3133303,
3134004, 3135456, 3145307, 3146305, 3152170, 3171600,
3132503, 3104502, 3154457, 3164209, 3170479, 3170529,
3104700, 3126802, 3131802, 3141504, 3144672, 3144904,
3146206, 3150000, 3161056, 3163300, 3168606, 3200169,
3200904, 3202108, 3203908, 3205150, 3121605, 3138104,
3106507, 3120300, 3127800, 3136520, 3138351, 3169703,
3125606, 3155108, 3168002, 3107307, 3108503, 3113503,
3116506, 3118809, 3120102, 3123809, 3126604, 3127354,
3128253, 3132008, 3136801, 3143302, 3145455, 3162252,
3165909, 3108206, 3122470, 3144375, 3157609, 3126703,
3109402, 3108602, 3111150, 3130051, 3135357, 3138682,
3142007, 3147956, 3161106, 3162401, 3162658, 3170008,
3123106, 3129608, 3137304, 3151206, 3152131, 3170800,
3110806, 3126901, 3135076, 3112059, 3148608, 3162807,
3171071, 3127305, 3112703, 3135100, 3170909, 3115458,
3132305, 3130556, 3150158, 3157252, 3159357, 3160959,
3164472, 3170057, 3148509, 3203601, 3113800, 3166105,
3115474, 3141009, 3142908, 3146552, 3152204, 3115706,
3122108, 3139607, 3161650, 3162575, 3203304, 3150570,
3135605, 3116803, 3126950, 3140605, 3148400, 3156007,
3163508, 3117009, 3156502, 3157005, 3168051, 3121001,
3120839, 3127370, 3119203, 3140100, 3144201, 3165503,
3171907, 3125408, 3125507, 3166501, 3136579, 3200359,
3160207, 3122207, 3135050, 3160454, 3154507, 3152402,
3171501, 3127073, 3145372, 3146255, 3155603, 3129657,
3138658, 3130655, 3170651, 3204005, 3171030, 3145059,
3166956, 3200136, 3202256, 3204658, 3204708, 3200607,
3203205, 3201506, 3201001, 3204252, 3204906, 3203353,
3204351, 3205176, 3203056, 3205010)
# if current year not available in municipality data, use the latest available
muni_years <- list_geobr()[which(list_geobr()$'function' == '`read_municipality`'), 'years']
years_list <- strsplit(muni_years, ",")
muni_current_year <- max( as.numeric( unlist( years_list ) ) )
# download data
munis_br <- read_municipality(code_muni = 'all',
year = if (year > muni_current_year) muni_current_year else year,
simplified = simplified,
showProgress = showProgress
)
# filter data
temp_ne1 <- subset(munis_br, substring(munis_br$code_state, 1, 1) == "2")
if (year == 2007) { temp_ne2 <- subset(munis_br, code_muni %in% sudene_2007) }
if (year == 2021) { temp_ne2 <- subset(munis_br, code_muni %in% sudene_2021) }
temp_sf <- rbind(temp_ne1, temp_ne2)
return(temp_sf)
}
### SUDAM --------------------------------------------------------
if(region == 'N') {
# years available in database
years <- c(2007)
# check year input
checkmate::assert_true(year %in% c(years, 'current'))
# assign latest year available if current is chosen
if(year == 'current') year <- max(years)
# if current year not available in municipality data, use the latest available
muni_years <- list_geobr()[which(list_geobr()$'function' == '`read_municipality`'), 'years']
years_list <- strsplit(muni_years, ",")
muni_current_year <- max( as.numeric( unlist( years_list ) ) )
# download data
munis_br <- read_municipality(code_muni = 'all',
year = if (year > muni_current_year) muni_current_year else year,
simplified = simplified,
showProgress = showProgress
)
# Municipalities under Sudam in 2007
sudam_2007 <- subset(munis_br, substring(munis_br$code_state, 1, 2) == "51" |
substring(munis_br$code_state, 1, 1) == "1" )
# Assign data
if (year == 2007) { N <- sudam_2007 }
return(N)
}
}
sudam <- read_development_region(region = 'N', year = 'current')
sudene <- read_development_region(region = 'NE', year = 'current')
plot(sudam['code_state'])
plot(sudene['code_state']) |
Acabei deixando na verificação |
Oi @diegomsg . Obrigado pelos ajustes na funcao e atualizacao na lista de municipios! Ainda preciso checar o funcionamento da funcao com mais calma, mas atpe agora esse é o trecho que mais me 'preocupa'.
Eu entendo a motivação de pegar a malha de municipios mais recente com A alternativa que eu tinha pensado era essa aqui. Nesse caso, quando o usuario escolhe
Enfim, acho que ambas estratégias tem suas vantagens e desvantagens. E isso levanta uma pergunta, o que acontece com o município ps. agradeço sua paciencia com a demora das minhas respostas. Eu minha filha deve nascer nos proximos dias e as coisas aqui estao bem corridas antes da chegada dela. |
Primeiro vamos à parte importante da vida: parabéns pela bebê que tá chegando, muita saúde pra ela e pra mãe. Agora com relação ao Com Sudene em 2021 e read_municipality até 2020, esse código vai dar erro: # assign latest year available if current is chosen
if (year == 'current') { year <- max(years) }
# download data
munis_br <- read_municipality(code_muni = 'all',
year = year,
simplified = simplified,
showProgress = showProgress
) O impacto da inexistência de município presente em
Não vejo como atribuir isso na função sem uma relação (1-*) município anterior - municípios desmembrados. |
Como poderia ajudar a inserir os dados disponíveis em Sudene/Sigmapas no pacote?
Não tenho muita experiência com geoprocessamento em R, muito menos em Python, mas alguma experiência em ferramentas SIG.
The text was updated successfully, but these errors were encountered: