Narzędzia użytkownika

Narzędzia witryny


ewdprocedury_bazaszkol_ludnosc

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
Ostatnia wersja Both sides next revision
ewdprocedury_bazaszkol_ludnosc [2014/10/30 20:31]
zozlak
ewdprocedury_bazaszkol_ludnosc [2019/09/06 12:13]
zozlak [Pobieranie danych z BDL]
Linia 1: Linia 1:
 ====== Przypisywanie szkołom liczby mieszkańców w miejscowości ====== ====== Przypisywanie szkołom liczby mieszkańców w miejscowości ======
 +
 +Liczba mieszkańców miejscowości,​ w której znajduje się szkoła przypisywana jest z informacji o liczbie mieszkańców miejscowości pobranej z Banku Danych Lokalnych (BDL).
 +
 +**Szkołom znajdującym się na wsiach przypisywana jest wielkość miejscowości 0.**
 +
 +**Szkołom dla których brak informacji adresowych przypisywana jest wielkość miejscowości NULL (brak danych).**
  
 Ponieważ dane w BDL publikowane są z systematycznym opóźnieniem,​ przyjęto, że informacja o liczbie mieszkańców:​ Ponieważ dane w BDL publikowane są z systematycznym opóźnieniem,​ przyjęto, że informacja o liczbie mieszkańców:​
   * w bieżącym roku pobierana jest dla danych, które są dostępne w BDL, czyli dla poprzedniego roku (mówiąc inaczej wg stanu w momencie rozpoczęcia roku szkolnego, którego to roku szkolnego dotyczą dane teleadresowe szkoły);   * w bieżącym roku pobierana jest dla danych, które są dostępne w BDL, czyli dla poprzedniego roku (mówiąc inaczej wg stanu w momencie rozpoczęcia roku szkolnego, którego to roku szkolnego dotyczą dane teleadresowe szkoły);
-  * jednocześnie dla wcześniejszych ​lata przypisywana jest informacja z BDL dla odpowiadającego im roku.+  * jednocześnie dla wcześniejszych ​latach ​przypisywana jest informacja z BDL dla odpowiadającego im roku. 
 + 
 +===== Algorytm ===== 
 + 
 +Pobranie z BDL informacji o liczbie mieszkańców **jedynie** w gminach miejskich oraz miastach w gminach miejsko-wiejskich (będzie to istotne dla gmin miejsko-wiejskich i wiejskich). 
 + 
 +  * **dzielnice Warszawy** - złączenie po kodzie TERYT Warszawy (146501 / 143101) 
 +  * **gminy miejskie** - złączenie z danymi z BDL po kodzie TERYT gminy 
 +  * **gminy miejsko-wiejskie** 
 +    * złączenie z danymi z BDL po parze {TERYT gminy, miejscowość} 
 +    * przypisanie 0 szkołom, które nie połączyły się z danymi BDL 
 +    * przypisanie braku danych szkołom, które nie posiadają kodu pocztowego 
 +  * **gminy wiejskie** 
 +    * złączenie z danymi z BDL po parze {TERYT powiatu, miejscowość} 
 +      * ponieważ z BDL pobrano tylko informacje o gminach miejskich i miastach w gminach miejsko-wiejskich,​ dołączyć w ten sposób może się tylko informacja o odpowiadającej danej gminie wiejskiej gminie miejskiej 
 +      * są to przypadki, gdy szkoła siedzibę ma w gminie miejskiej, choć np. organem prowadzącym jest gmina wiejska 
 +      * w skali kraju, dla wszystkich typów szkół, jest takich przypadków ok. 15 do 30. 
 +    * przypisanie 0 szkołom, które nie połączyły się z danymi BDL (tzn. faktycznie znajdują się na wsi)
  
 ====== Pobieranie danych z BDL ====== ====== Pobieranie danych z BDL ======
  
 http://​stat.gov.pl/​bdl http://​stat.gov.pl/​bdl
-  * dane roczne ​-> ludność -> stan ludności ​i prognozy ​-> ludność wg grup wieku i płci +  * dane wg dziedzin ​-> ludność -> stan ludności -> ludność wg grup wieku i płci 
-  * //wybór jednostek terytorialnych ​wg poziomu NTS//: //gminy miejskiemiasta w gminach miejsko-wiejskich//​ +  * lata wg uznania, wiek //​ogółem//​płeć //​ogółem//​ 
-  * //wiek//: //​ogółem//​ +  * jednostki - wszystkie z poziomu ogólnopolskiego w podziale ​//układ administracyjny// (który jest domyślny) 
-  * //płeć//: //​ogółem//​ +  * wyeksportować jako //CSV - tablica relacyjna//
-  * //dodatkowe agregaty//: brak +
- +
-I zapisać jako CSV.+
  
 ====== Import do bazy ====== ====== Import do bazy ======
Linia 28: Linia 48:
 library(RODBCext) library(RODBCext)
 P = odbcConnect(zrodloODBC) P = odbcConnect(zrodloODBC)
 +
 +# aby upewnić się, że baza jest spójna z naszymi oczekiwaniami
 +sqlQuery(P, "​UPDATE szkoly_dane SET miejscowosc = poczta WHERE miejscowosc = ''​ or miejscowosc is null")
  
 dane = read.csv2(plikDanych,​ stringsAsFactors=F) dane = read.csv2(plikDanych,​ stringsAsFactors=F)
-dane$teryt = as.numeric(paste0(substring(dane$teryt,​ 2, 3), substring(dane$teryt,​ 6, 9)))+#dane$teryt = as.numeric(paste0(substring(dane$teryt,​ 2, 3), substring(dane$teryt,​ 6, 9))) 
 +dane$teryt = as.integer(substring(dane$teryt,​ 1, 6))
 dane$miasto = sub('​[*]',​ '',​ dane$miasto) dane$miasto = sub('​[*]',​ '',​ dane$miasto)
 dane$miasto = sub('​[(][0-9][)]',​ '',​ dane$miasto) dane$miasto = sub('​[(][0-9][)]',​ '',​ dane$miasto)
Linia 62: Linia 86:
 mieszane = join(mieszane,​ dane, type = '​left'​) mieszane = join(mieszane,​ dane, type = '​left'​)
 mieszane[is.na(mieszane[,​ kolumnaLudnosc]),​ kolumnaLudnosc] = 0 mieszane[is.na(mieszane[,​ kolumnaLudnosc]),​ kolumnaLudnosc] = 0
-mieszane[is.na(mieszane$pna) | mieszane$pna == '',​ kolumnaLudnosc] = 0+mieszane[is.na(mieszane$pna) | mieszane$pna == '',​ kolumnaLudnosc] = NA
  
 ### szkoły teoretycznie leżące w gminach wiejskich mogą tak naprawdę leżeć w gminach miejskich o tej samej nazwie - złączamy po terycie powiatu i nazwie miejscowości równej nazwie gminy ### szkoły teoretycznie leżące w gminach wiejskich mogą tak naprawdę leżeć w gminach miejskich o tej samej nazwie - złączamy po terycie powiatu i nazwie miejscowości równej nazwie gminy
ewdprocedury_bazaszkol_ludnosc.txt · ostatnio zmienione: 2019/09/07 16:16 przez zozlak