X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=org.argeo.support.geonames%2Fsrc%2Forg%2Fargeo%2Fsupport%2Fgeonames%2FImportGeonamesAdmin.java;fp=org.argeo.support.geonames%2Fsrc%2Forg%2Fargeo%2Fsupport%2Fgeonames%2FImportGeonamesAdmin.java;h=0000000000000000000000000000000000000000;hp=9af5987fa98a945176d3a6b6951dfeef3a8cd9a5;hb=6e56ffa34cb02ab04d028423aea342e3dfed4358;hpb=c285180bece610b2c2921d44fe14b6dde2123efa diff --git a/org.argeo.support.geonames/src/org/argeo/support/geonames/ImportGeonamesAdmin.java b/org.argeo.support.geonames/src/org/argeo/support/geonames/ImportGeonamesAdmin.java deleted file mode 100644 index 9af5987..0000000 --- a/org.argeo.support.geonames/src/org/argeo/support/geonames/ImportGeonamesAdmin.java +++ /dev/null @@ -1,93 +0,0 @@ -package org.argeo.support.geonames; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.argeo.util.CsvParser; -import org.argeo.util.CsvWriter; - -/** Import GeoNames administrative division from the main table. */ -public class ImportGeonamesAdmin { - // private Log log = LogFactory.getLog(ImportGeonamesAdmin.class); - private Map geonamesAdms = new HashMap<>(); - - /** Loads the data. */ - public void parse(InputStream in) { - Map countryGeonameIds = new HashMap<>(); - Map admin1GeonameIds = new HashMap<>(); - CsvParser csvParser = new CsvParser() { - - @Override - protected void processLine(Integer lineNumber, List header, List tokens) { - if (!"A".equals(tokens.get(6))) - return; - GeonamesAdm geonamesAdm = new GeonamesAdm(tokens); - geonamesAdms.put(geonamesAdm.getGeonameId(), geonamesAdm); - if (geonamesAdm.getAdmLevel().equals("PCLI")) - countryGeonameIds.put(geonamesAdm.getCountryCode(), geonamesAdm.getGeonameId()); - if (geonamesAdm.getAdmLevel().equals("ADM1")) - admin1GeonameIds.put(geonamesAdm.getAdminCode1(), geonamesAdm.getGeonameId()); - } - }; - csvParser.setSeparator('\t'); - csvParser.setNoHeader(true); - csvParser.parse(in, StandardCharsets.UTF_8); - - // fill upper levels - for (GeonamesAdm adm : geonamesAdms.values()) { - adm.getUpperLevelIds()[0] = countryGeonameIds.get(adm.getCountryCode()); - if (adm.getLevel() > 0) - adm.getUpperLevelIds()[1] = admin1GeonameIds.get(adm.getAdminCode1()); - adm.mapUpperLevels(geonamesAdms); - } - - } - - public Map getGeonamesAdms() { - return geonamesAdms; - } - - /** - * Copies only the Geonames of feature class 'A' (administrative subdivisions). - */ - public static void filterGeonamesAdm(InputStream in, OutputStream out) { - CsvWriter csvWriter = new CsvWriter(out, StandardCharsets.UTF_8); - csvWriter.setSeparator('\t'); - CsvParser csvParser = new CsvParser() { - - @Override - protected void processLine(Integer lineNumber, List header, List tokens) { - if (tokens.size() < 7 || !"A".equals(tokens.get(6))) - return; - csvWriter.writeLine(tokens); - } - }; - csvParser.setSeparator('\t'); - csvParser.setNoHeader(true); - csvParser.parse(in, StandardCharsets.UTF_8); - } - - public static void main(String[] args) throws IOException { -// String country = "allCountries"; - String country = "CI"; -// try (InputStream in = Files -// .newInputStream(Paths.get(System.getProperty("user.home") + "/gis/data/geonames/" + country + ".txt")); -// OutputStream out = Files.newOutputStream( -// Paths.get(System.getProperty("user.home") + "/gis/data/geonames/" + country + "-adm.txt"))) { -// ImportGeonamesAdmin.filterGeonamesAdm(in, out); -// } - try (InputStream in = Files.newInputStream( - Paths.get(System.getProperty("user.home") + "/gis/data/geonames/" + country + "-adm.txt"))) { - ImportGeonamesAdmin importGeonamesAdmin = new ImportGeonamesAdmin(); - importGeonamesAdmin.parse(in); - } - } - -}