Crate gv100ad[−][src]
This software is experimental and might change a lot in future
This is a Rust implementation of a parser for GV100AD data sets. These data sets contain information about the structure, population, area of german municipalities.
The data sets can be obtained at: https://www.destatis.de/DE/Themen/Laender-Regionen/Regionales/Gemeindeverzeichnis/_inhalt.html
The parser was tested with this data set: https://www.destatis.de/DE/Themen/Laender-Regionen/Regionales/Gemeindeverzeichnis/Administrativ/Archiv/GV100ADQ/GV100AD3004.html
The ZIP files contain a text file GV100AD_DDMMYY.txt
that contains the
data set, and a PDF file describing the format.
Example
This example lists all municipalities of the state Saarland with population:
use gv100ad::{ model::{ gemeinde::GemeindeDaten, kreis::KreisDaten, land::{LandDaten, LandSchluessel}, }, Database, }; // Open the database. Refer to the `README.md` file for the source of the datasets. let db = Database::from_path("GV100AD3004/GV100AD_300421.txt").unwrap(); // Parse a key for the state of Saarland let schluessel = "10".parse::<LandSchluessel>().unwrap(); // Get the record for the state of Saarland let land = db.get::<_, LandDaten>(schluessel).unwrap(); println!("{}:", land.name); // Iterate over the districts (Kreise) in Saarland for kreis in db.children::<_, KreisDaten>(schluessel) { println!(" {}:", kreis.name); // Iterate over the municipalities (Gemeinde) in the district (Kreis) for gemeinde in db.children::<_, GemeindeDaten>(kreis.schluessel) { println!( " {}: {} residents", gemeinde.name, gemeinde.population_total ); } } // Get the sum of the population of all municipalities in Saarland let total_population: u64 = db.children::<_, GemeindeDaten>(schluessel) .map(|gemeinde| gemeinde.population_total) .sum(); println!("Total population of {}: {}", land.name, total_population);
Language
The primary language used for the software is English, thus most of documentation and code is in English. Nevertheless a lot of terms are inherently German, and a lot of identifiers in the software use these terms. Here are a few translations:
- Land: State (also called Bundesland)
- Regierungsbezirk: Government district
- Kreis: District
- Gemeinde: Municipality (more literally “community”)
- Verband: Association
- Schluessel: Key
- Textkennzeichen: Textual (it’s actually a number) identifier for type of Kreis, Gemeindeverband or Gemeinde.
- Daten: data, in context e.g. “Landdaten” means “state data” or “state record”.
If you think a translation is incorrect or missing, please open an issue.
Re-exports
pub use db::Database; |
pub use parser::Parser; |
Modules
db | |
error | |
model | |
parser |