/data-server/src/test/java/com/saltaku/api/test/insert/InsertSampleData.java

https://github.com/sztanko/saltaku_mapserver · Java · 105 lines · 77 code · 15 blank · 13 comment · 0 complexity · 20a896a121a6d1bf1c46b2112cd89e9b MD5 · raw file

  1. package com.saltaku.api.test.insert;
  2. import java.io.File;
  3. import java.io.FileNotFoundException;
  4. import java.io.IOException;
  5. import java.io.PrintStream;
  6. import java.net.MalformedURLException;
  7. import java.net.URL;
  8. import java.util.HashMap;
  9. import java.util.Map;
  10. import java.util.Properties;
  11. import org.apache.commons.io.FileUtils;
  12. import com.google.inject.Guice;
  13. import com.google.inject.Injector;
  14. import com.saltaku.api.APIException;
  15. import com.saltaku.api.DataSetAPI;
  16. import com.saltaku.beans.relationfinder.DatasetRelation;
  17. import com.saltaku.data.area.relationfinder.RelationFinder;
  18. import com.saltaku.data.area.relationfinder.RelationFinderException;
  19. import com.saltaku.data.area.writer.io.DataStoreProvider;
  20. import com.saltaku.data.server.guice.DefaultModule;
  21. import com.saltaku.geo.GeoException;
  22. import com.saltaku.geo.GeoProcessor;
  23. import com.saltaku.store.DBStore;
  24. import com.saltaku.store.DBStoreException;
  25. public class InsertSampleData {
  26. String lsoaCode="3079949128780070862";
  27. String msoaCode="3222430369643083796";
  28. String countyCode="8485954552965056384";
  29. Injector injector;
  30. GeoProcessor gp;
  31. DBStore db;
  32. DataStoreProvider dsp;
  33. RelationFinder f;
  34. DataSetAPI dataApi;
  35. /**
  36. * @param args
  37. * @throws GeoException
  38. * @throws RelationFinderException
  39. * @throws DBStoreException
  40. * @throws APIException
  41. * @throws IOException
  42. */
  43. public static void main(String[] args) throws GeoException, RelationFinderException, DBStoreException, IOException, APIException {
  44. InsertSampleData ids = new InsertSampleData();
  45. //ids.createArea();
  46. //ids.findRelations();
  47. ids.insertDs();
  48. }
  49. public InsertSampleData()
  50. {
  51. injector = Guice.createInjector(new DefaultModule(new Properties()) );
  52. gp=injector.getInstance(GeoProcessor.class);
  53. db=injector.getInstance(DBStore.class);
  54. dsp=injector.getInstance(DataStoreProvider.class);
  55. f=injector.getInstance(RelationFinder.class);
  56. dataApi=injector.getInstance(DataSetAPI.class);
  57. }
  58. public void createArea() throws GeoException
  59. {
  60. lsoaCode=gp.uploadArea("/tmp/shapefiles/lsoa/data.shp", "lsoa", "http://data.gov.uk/dataset/lower_layer_super_output_area_lsoa_boundaries", "code", "name", "name");
  61. msoaCode=gp.uploadArea("/tmp/shapefiles/msoa/data.shp", "msoa", "http://data.gov.uk/dataset/lower_layer_super_output_area_lsoa_boundaries", "code", "name", "name");
  62. countyCode=gp.uploadArea("/tmp/shapefiles/uk_2/data.shp", "uk counties", "http://data.gov.uk/dataset/lower_layer_super_output_area_lsoa_boundaries", "code", "name", "name");
  63. }
  64. public void findRelations() throws RelationFinderException, FileNotFoundException, DBStoreException
  65. {
  66. System.setOut(new PrintStream("/tmp/out"));
  67. DatasetRelation rel=f.findRelations(dsp.getDataStoreURL(lsoaCode), dsp.getDataStoreURL(msoaCode));
  68. //System.setOut(new PrintStream("/dev/stdout"));
  69. db.insertAreaMapping(lsoaCode,msoaCode,rel);
  70. //System.setOut(new PrintStream("/tmp/out"));
  71. rel=f.findRelations(dsp.getDataStoreURL(msoaCode), dsp.getDataStoreURL(countyCode));
  72. //System.setOut(new PrintStream("/dev/stdout"));
  73. db.insertAreaMapping(msoaCode,countyCode,rel);
  74. }
  75. public void insertDs() throws IOException, APIException
  76. {
  77. String[] aggregators={"id"};
  78. Map<String, Integer> columns=new HashMap<String, Integer>();
  79. String data=FileUtils.readFileToString(new File("src/test/resources/data/imd/2010/imd20100.CSV"));
  80. columns.put("Index of Multiple Deprivation", 14);
  81. columns.put("Income", 16);
  82. columns.put("Employment", 18);
  83. columns.put("Health Deprivation and Disability", 20);
  84. columns.put("Education Skills and Training", 22);
  85. columns.put("Barriers to Housing and Services", 24);
  86. columns.put("Crime", 26);
  87. columns.put("Living Environment", 28);
  88. dataApi.uploadDataSource(data, "Dimi", true, "ID",10 , lsoaCode, aggregators, '\t', 6, columns);
  89. }
  90. }