Skip to content

Commit

Permalink
Merge pull request #35 from MaxDragonheart/feat-update-dependencies
Browse files Browse the repository at this point in the history
Feat update dependencies
  • Loading branch information
MaxDragonheart authored Jun 5, 2024
2 parents 995dd01 + 2a9d32f commit 01f8b7b
Show file tree
Hide file tree
Showing 30 changed files with 15,572 additions and 393 deletions.
1,163 changes: 1,163 additions & 0 deletions demo_data/R02_DatiCPA_1991.csv

Large diffs are not rendered by default.

Binary file added demo_data/R02_DatiCPA_1991.xls
Binary file not shown.

Large diffs are not rendered by default.

10,862 changes: 10,862 additions & 0 deletions demo_data/census_2011/data/Sezioni di Censimento/R20_indicatori_2011_sezioni.csv

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
NOME_CAMPO;DEFINIZIONE
CODREG;Codice numerico che identifica univocamente la regione nell�ambito del territorio nazionale
REGIONE;Denominazione della regione
CODPRO;Codice numerico che identifica univocamente la provincia nell�ambito del territorio nazionale
PROVINCIA;Denominazione della provincia
CODCOM;Codice numerico che identifica univocamente il comune nell�ambito del territorio provinciale
COMUNE;Denominazione del comune
PROCOM;Codice numerico che identifica univocamente il comune nell�ambito del territorio nazionale. Il valore � ottenuto dalla concatenazione del campo CODPRO con il campo CODCOM a tre digit
SEZ2011;Codice numerico che identifica univocamente la sezione di censimento 2011 nell�ambito del territorio nazionale. Il valore � ottenuto dalla concatenazione del campo PROCOM con il campo NSEZ a 7 digit
NSEZ;Numero che identifica univocamente la sezione di censimento 2011 nell�ambito del territorio comunale. Con riferimento alle zone in contestazione, nel caso ci siano degli individui residenti nel comune a cui la sezione non � assegnata, viene indicata una sezione fittizia con codice 9999999 o 9999998 con gli individui residenti. Le sezioni di censimento con codice 8888881, 8888882, etc. (fino a 8888889) sono sezioni fittizie, utilizzate per collocare le persone �senza tetto� iscritte in anagrafe a un indirizzo convenzionale stabilito dal Comune. In queste sezioni vengono collocati anche eventuali senza tetto iscritti in anagrafe presso associazioni o strutture di accoglienza. Fanno eccezione le persone senza tetto censite a Roma Capitale che, se iscritte in anagrafe presso associazioni o strutture di accoglienza, in accordo con l�Ufficio Comunale di Censimento, sono state collocate nelle sezioni di pertinenza delle stesse associazioni. I codici 7777777, presenti nel file relativo ai dati del censimento 2011 della Regione Abruzzo, individuano sezioni fittizie presenti nei comuni colpiti dagli eventi sismici dell'aprile 2009. Queste sezioni sono state utilizzate per collocare le famiglie che alla data del censimento erano temporaneamente domiciliate in un comune diverso da quello di iscrizione anagrafica, come stabilito dall'Istat con apposita circolare (circolare n. 7 del 20 luglio 2011, prot. n. 5839), secondo quanto previsto dal Piano Generale di Censimento
ACE;Numero che identifica univocamente l'area di censimento nell�ambito del territorio comunale
CODLOC;Codice numerico che identifica la localit� 2011 nell�ambito del territorio comunale. Il codice � composto da 5 cifre (Es. 10001). Il primo posto � riservato alla tipologia di localit� (vedere la descrizione del campo TIPOLOC nel file di diffusione per localit�)
CODASC;Codice numerico che identifica univocamente l'area subcomunale, ove presente, nell�ambito del territorio comunale
P1;Popolazione residente - totale
P2;Popolazione residente - maschi
P3;Popolazione residente - femmine
P4;Popolazione residente - celibi/nubili
P5;Popolazione residente - coniugati/e (+ separati/e di fatto)
P6;Popolazione residente - separati/e legalmente
P7;Popolazione residente - vedovi/e
P8;Popolazione residente - divorziati/e
P9;Popolazione residente - maschi celibi
P10;Popolazione residente - maschi coniugati o separati di fatto
P11;Popolazione residente - maschi separati legalmente
P12;Popolazione residente - maschi vedovi
P13;Popolazione residente - maschi divorziati
P14;Popolazione residente - et� < 5 anni
P15;Popolazione residente - et� 5 - 9 anni
P16;Popolazione residente - et� 10 - 14 anni
P17;Popolazione residente - et� 15 - 19 anni
P18;Popolazione residente - et� 20 - 24 anni
P19;Popolazione residente - et� 25 - 29 anni
P20;Popolazione residente - et� 30 - 34 anni
P21;Popolazione residente - et� 35 - 39 anni
P22;Popolazione residente - et� 40 - 44 anni
P23;Popolazione residente - et� 45 - 49 anni
P24;Popolazione residente - et� 50 - 54 anni
P25;Popolazione residente - et� 55 - 59 anni
P26;Popolazione residente - et� 60 - 64 anni
P27;Popolazione residente - et� 65 - 69 anni
P28;Popolazione residente - et� 70 - 74 anni
P29;Popolazione residente - et� > 74 anni
P30;Popolazione residente - maschi - et� < 5 anni
P31;Popolazione residente - maschi - et� 5 - 9 anni
P32;Popolazione residente - maschi - et� 10 - 14 anni
P33;Popolazione residente - maschi - et� 15 - 19 anni
P34;Popolazione residente - maschi - et� 20 - 24 anni
P35;Popolazione residente - maschi - et� 25 - 29 anni
P36;Popolazione residente - maschi - et� 30 - 34 anni
P37;Popolazione residente - maschi - et� 35 - 39 anni
P38;Popolazione residente - maschi - et� 40 - 44 anni
P39;Popolazione residente - maschi - et� 45 - 49 anni
P40;Popolazione residente - maschi - et� 50 - 54 anni
P41;Popolazione residente - maschi - et� 55 - 59 anni
P42;Popolazione residente - maschi - et� 60 - 64 anni
P43;Popolazione residente - maschi - et� 65 - 69 anni
P44;Popolazione residente - maschi - et� 70 - 74 anni
P45;Popolazione residente - maschi - et� > 74 anni
P46;Popolazione residente - totale di 6 anni e pi�
P47;Popolazione residente con laurea vecchio e nuovo ordinamento + diplomi universitari + diplomi terziari di tipo non universitario vecchio e nuovo ordinamento
P48;Popolazione residente con diploma di scuola secondaria superiore (maturit� + qualifica)
P49;Popolazione residente con media inferiore
P50;Popolazione residente con licenza elementare
P51;Popolazione residente - alfabeti
P52;Popolazione residente - analfabeti
P53;Popolazione residente - maschi di 6 anni e pi�
P54;Popolazione residente - maschi con laurea vecchio e nuovo ordinamento + diplomi universitari + diplomi terziari di tipo non universitario vecchio e nuovo ordinamento
P55;Popolazione residente - maschi con diploma di scuola secondaria superiore (maturit� + qualifica)
P56;Popolazione residente - maschi con media inferiore
P57;Popolazione residente - maschi con licenza elementare
P58;Popolazione residente - maschi alfabeti
P59;Popolazione residente - maschi analfabeti
P60;Popolazione residente - totale di 15 anni e pi� appartenente alle forze di lavoro totale
P61;Popolazione residente - totale di 15 anni e pi� occupata (FL)
P62;Popolazione residente - totale di 15 anni e pi� disoccupata in cerca nuova occupazione
P64;Popolazione residente - maschi di 15 anni e pi� appartenente alle forze di lavoro
P65;Popolazione residente - maschi di 15 anni e pi� occupata (FL)
P66;Popolazione residente - maschi di 15 anni e pi� disoccupata in cerca nuova occupazione
P128;Popolazione residente - totale di 15 anni e pi� non appartenente alle forze di lavoro (NFL)
P129;Popolazione residente - maschi di 15 anni e pi� non appartenente alle forze di lavoro (NFL)
P130;Popolazione residente - totale di 15 anni e pi� casalinghi/e
P131;Popolazione residente - totale di 15 anni e pi� studenti
P132;Popolazione residente - totale maschi di 15 anni e pi� studenti
P135;Popolazione residente - totale di 15 anni e pi� in altra condizione
P136;Popolazione residente - totale maschi di 15 anni e pi� in altra condizione
P137;Popolazione residente che si sposta giornalmente nel comune di dimora abituale
P138;Popolazione residente che si sposta giornalmente fuori del comune di dimora abituale
P139;Popolazione residente - totale di 15 anni e pi� percettori di reddito da lavoro o capitale
P140;Popolazione residente - totale maschi di 15 anni e pi� percettori di reddito da lavoro o capitale
ST1;Stranieri e apolidi residenti in Italia - totale
ST2;Stranieri e apolidi residenti in Italia - maschi
ST3;Stranieri e apolidi residenti in Italia - et� 0 - 29 anni
ST4;Stranieri e apolidi residenti in Italia - et� 30 - 54 anni
ST5;Stranieri e apolidi residenti in Italia - et� > 54 anni
ST6;Stranieri e apolidi residenti in Italia - maschi - et� 0 - 29 anni
ST7;Stranieri e apolidi residenti in Italia - maschi - et� 30 - 54 anni
ST8;Stranieri e apolidi residenti in Italia - maschi - et� > 54 anni
ST9;Stranieri residenti in Italia - Europa
ST10;Stranieri residenti in Italia - Africa
ST11;Stranieri residenti in Italia - America
ST12;Stranieri residenti in Italia - Asia
ST13;Stranieri residenti in Italia - Oceania
ST14;Apolidi residenti in Italia
ST15;Stranieri residenti in Italia - totale
A2;Abitazioni occupate da almeno una persona residente
A3;Abitazioni vuote e abitazioni occupate solo da persone non residenti
A5;Altri tipi di alloggio occupati
A6;Abitazioni vuote
A7;Abitazioni occupate solo da persone non residenti
A44;Superficie delle abitazioni occupate da almeno una persona�residente
A46;Famiglie in alloggi in affitto
A47;Famiglie in alloggi di propriet�
A48;Famiglie che occupano l'alloggio ad altro titolo
PF1;Famiglie residenti - totale
PF2;Famiglie residenti - totale componenti
PF3;Famiglie residenti - 1 componente
PF4;Famiglie residenti - 2 componenti
PF5;Famiglie residenti - 3 componenti
PF6;Famiglie residenti - 4 componenti
PF7;Famiglie residenti - 5 componenti
PF8;Famiglie residenti - 6 e oltre componenti
PF9;Componenti delle famiglie residenti di 6 e oltre componenti
E1;Edifici e complessi di edifici - totale
E2;Edifici e complessi di edifici utilizzati
E3;Edifici ad uso residenziale
E4;Edifici e complessi di edifici (utilizzati) ad uso produttivo, commerciale, direzionale/terziario, turistico/ricettivo, servizi, altro
E5;Edifici ad uso residenziale in muratura portante
E6;Edifici ad uso residenziale in calcestruzzo armato
E7;Edifici ad uso residenziale in altro materiale (acciaio, legno, ecc.)
E8;Edifici ad uso residenziale costruiti prima del 1919
E9;Edifici ad uso residenziale costruiti dal 1919 al 1945
E10;Edifici ad uso residenziale costruiti dal 1946 al 1960
E11;Edifici ad uso residenziale costruiti dal 1961 al 1970
E12;Edifici ad uso residenziale costruiti dal 1971 al 1980
E13;Edifici ad uso residenziale costruiti dal 1981 al 1990
E14;Edifici ad uso residenziale costruiti dal 1991 al 2000
E15;Edifici ad uso residenziale costruiti dal 2001 al 2005
E16;Edifici ad uso residenziale costruiti dopo il 2005
E17;Edifici ad uso residenziale con un piano
E18;Edifici ad uso residenziale con 2 piani
E19;Edifici ad uso residenziale con 3 piani
E20;Edifici ad uso residenziale con 4 piani o pi�
E21;Edifici ad uso residenziale con un interno
E22;Edifici ad uso residenziale con 2 interni
E23;Edifici ad uso residenziale da 3 a 4 interni
E24;Edifici ad uso residenziale da 5 a 8 interni
E25;Edifici ad uso residenziale da 9 a 15 interni
E26;Edifici ad uso residenziale con 16 interni o pi�
E27;Totale interni in edifici ad uso residenziale
E28;Edifici ad uso residenziale con stato di conservazione ottimo
E29;Edifici ad uso residenziale con stato di conservazione buono
E30;Edifici ad uso residenziale con stato di conservazione mediocre
E31;Edifici ad uso residenziale con stato di conservazione pessimo
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
PROJCS["WGS_1984_UTM_Zone_32N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
PROJCS["WGS_1984_UTM_Zone_32N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]
Binary file not shown.
Binary file not shown.
9 changes: 6 additions & 3 deletions istatcelldata/download.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ def download_census_data(
census_code=f'sez{year}',
output_path=data_folder_1991_2001,
)
logging.info("Download census data completed")
logging.info(f"Download census data completed and saved to {destination_folder}")
return destination_folder


def download_census_geodata(
Expand Down Expand Up @@ -112,7 +113,8 @@ def download_census_geodata(
destination_folder=destination_folder
)

logging.info("Download census geodata completed")
logging.info(f"Download census geodata completed and saved to {data_folder}")
return data_folder


def download_administrative_boundaries(
Expand Down Expand Up @@ -147,7 +149,8 @@ def download_administrative_boundaries(
data_folder=data_folder,
destination_folder=destination_folder
)
logging.info("Download administrative boundaries completed")
logging.info(f"Download administrative boundaries completed and saved to {destination_folder}")
return destination_folder


def download_all_census_data(
Expand Down
57 changes: 27 additions & 30 deletions istatcelldata/generic.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,18 @@
import requests
import urllib3
import xlrd
from fsspec import get_fs_token_paths
from tqdm import tqdm

from istatcelldata.config import logger, console_handler, GEODATA_FOLDER

logger.addHandler(console_handler)


def check_encoding(data: Union[Path, PosixPath]) -> str:
def check_encoding(data: Path) -> str:
"""Verifica della codifica del dato.
Args:
data: Union[Path, PosixPath]
data: Path
Returns:
str
Expand All @@ -37,19 +36,19 @@ def check_encoding(data: Union[Path, PosixPath]) -> str:


def csv_from_excel(
data: Union[Path, PosixPath],
output_path: Union[Path, PosixPath],
data: Path,
output_path: Path,
metadata: bool = False
) -> Union[Path, PosixPath]:
) -> Path:
"""Conversione di un xls in csv.
Args:
data: Union[Path, PosixPath]
output_path: Union[Path, PosixPath]
data: Path
output_path: Path
metadata: bool
Returns:
Union[Path, PosixPath]
Path
"""
logging.info(f'Read data from {data}')
read_data = xlrd.open_workbook(data)
Expand All @@ -71,46 +70,44 @@ def csv_from_excel(
write_csv.writerow(get_sheet.row_values(row_id))

output_data.close()

logging.info(f'Convert data saved to {output_path}')
return output_path


def census_folder(
output_data_folder: Union[Path, PosixPath],
output_data_folder: Path,
year: int = 2011 # last official census at 2023 02 19
) -> Union[Path, PosixPath]:
) -> Path:
"""Creazione delle cartelle per dati e geodati censuari
dell'anno selezionato.
Args:
output_data_folder: Union[Path, PosixPath]
output_data_folder: Path
year: int
Returns:
Union[Path, PosixPath]
Path
"""
logging.info(f"Make folder for {year}' census data and geodata.")
download_folder_name = f"census_{year}"
fs, fs_token, paths = get_fs_token_paths(output_data_folder)

destination_folder = Path(paths[0]).joinpath(download_folder_name)
Path(destination_folder).mkdir(parents=True, exist_ok=True)

destination_folder = output_data_folder.joinpath(download_folder_name)
destination_folder.mkdir(parents=True, exist_ok=True)
logging.info(f"Folder created at {destination_folder}.")
return destination_folder


def census_geodata_folder(
output_data_folder: Union[Path, PosixPath],
output_data_folder: Path,
year: int
) -> Union[Path, PosixPath]:
) -> Path:
"""Creazione della cartella dei geodati per l'anno censuario selezionato.
Args:
output_data_folder: Union[Path, PosixPath]
output_data_folder: Path
year: int
Returns:
Union[Path, PosixPath]
Path
"""
# Make folder for yearly census data
destination_folder = census_folder(output_data_folder=output_data_folder, year=year)
Expand All @@ -120,26 +117,26 @@ def census_geodata_folder(
return folder


def unzip_data(input_data: Union[Path, PosixPath], output_folder: Union[Path, PosixPath]) -> Union[Path, PosixPath]:
def unzip_data(input_data: Path, output_folder: Path) -> Path:
"""Decompressione dei dati.
Args:
input_data: Union[Path, PosixPath].
output_folder: Union[Path, PosixPath].
input_data: Path.
output_folder: Path.
Returns:
Union[Path, PosixPath]
Path
"""
with zipfile.ZipFile(input_data, "r") as zf:
zf.extractall(output_folder)


def get_metadata(input_path: Union[Path, PosixPath], output_path: Union[Path, PosixPath]) -> list:
def get_metadata(input_path: Path, output_path: Path) -> list:
"""Lettura dei metadati.
Args:
input_path: Union[Path, PosixPath]
output_path: Union[Path, PosixPath]
input_path: Path
output_path: Path
Returns:
list
Expand Down
Loading

0 comments on commit 01f8b7b

Please sign in to comment.