use of org.eol.globi.geo.EcoregionFinder in project eol-globi-data by jhpoelen.
the class NodeFactoryNeo4j method associateWithEcoRegions.
private List<Ecoregion> associateWithEcoRegions(Location location) throws NodeFactoryException {
List<Ecoregion> associatedEcoregions = new ArrayList<Ecoregion>();
try {
EcoregionFinder finder = getEcoregionFinder();
if (finder != null) {
Collection<Ecoregion> ecoregions = finder.findEcoregion(location.getLatitude(), location.getLongitude());
for (Ecoregion ecoregion : ecoregions) {
associateLocationWithEcoRegion(location, ecoregion);
associatedEcoregions.add(ecoregion);
}
}
} catch (EcoregionFinderException e) {
throw new NodeFactoryException("problem finding eco region for location (lat,lng):(" + location.getLatitude() + "," + location.getLongitude() + ")");
}
return associatedEcoregions;
}
use of org.eol.globi.geo.EcoregionFinder in project eol-globi-data by jhpoelen.
the class Normalizer method importData.
void importData(GraphDatabaseService graphService, String cacheDir) {
NodeFactoryNeo4j factory = new NodeFactoryNeo4j(graphService);
factory.setEcoregionFinder(getEcoregionFinder());
factory.setDoiResolver(new DOIResolverImpl());
try {
CacheFactory cacheFactory = dataset -> new CacheLocalReadonly(dataset.getNamespace(), cacheDir);
DatasetFinder finder = new DatasetFinderLocal(cacheDir, cacheFactory);
StudyImporter importer = new StudyImporterForGitHubData(new ParserFactoryLocal(), factory, finder);
importer.setDataset(new DatasetLocal());
importer.setLogger(new StudyImportLogger());
importer.importStudy();
} catch (StudyImporterException e) {
LOG.error("problem encountered while importing [" + StudyImporterForGitHubData.class.getName() + "]", e);
}
EcoregionFinder regionFinder = getEcoregionFinder();
if (regionFinder != null) {
regionFinder.shutdown();
}
}
use of org.eol.globi.geo.EcoregionFinder in project eol-globi-data by jhpoelen.
the class NormalizerTest method createNormalizer.
private Normalizer createNormalizer() {
Normalizer dataNormalizationTool = new Normalizer();
dataNormalizationTool.setEcoregionFinder(new EcoregionFinder() {
@Override
public Collection<Ecoregion> findEcoregion(double lat, double lng) throws EcoregionFinderException {
final Ecoregion ecoregion = new Ecoregion();
ecoregion.setName("some name");
ecoregion.setPath("some | path");
ecoregion.setId("someId");
ecoregion.setGeometry("POINT(1,2)");
return new ArrayList<Ecoregion>() {
{
add(ecoregion);
}
};
}
@Override
public void shutdown() {
}
});
return dataNormalizationTool;
}
use of org.eol.globi.geo.EcoregionFinder in project eol-globi-data by jhpoelen.
the class GraphDBTestCase method createNodeFactory.
NodeFactory createNodeFactory() {
NodeFactoryNeo4j nodeFactoryNeo4j = new NodeFactoryNeo4j(getGraphDb());
nodeFactoryNeo4j.setEcoregionFinder(new EcoregionFinder() {
@Override
public Collection<Ecoregion> findEcoregion(double lat, double lng) throws EcoregionFinderException {
final Ecoregion ecoregion = new Ecoregion();
ecoregion.setName("some eco region");
ecoregion.setPath("some | eco | region | path");
ecoregion.setId("some:id");
ecoregion.setGeometry("POINT(0,0)");
return new ArrayList<Ecoregion>() {
{
add(ecoregion);
}
};
}
@Override
public void shutdown() {
}
});
nodeFactoryNeo4j.setEnvoLookupService(getEnvoLookupService());
nodeFactoryNeo4j.setTermLookupService(getTermLookupService());
return nodeFactoryNeo4j;
}
use of org.eol.globi.geo.EcoregionFinder in project eol-globi-data by jhpoelen.
the class EcoregionFinderProxyTest method multipleRegionsForSingleLocation.
@Test
public void multipleRegionsForSingleLocation() throws EcoregionFinderException {
ArrayList<EcoregionFinder> finders = new ArrayList<EcoregionFinder>() {
{
add(new EcoregionTestFinder("one:"));
add(new EcoregionTestFinder("two:"));
add(new EcoregionTestFinder("two:"));
add(new EcoregionTestFinder("three:"));
}
};
Collection<Ecoregion> ecoregion = new EcoregionFinderProxy(finders).findEcoregion(9.2, -79.91667);
Collection<String> ids = new ArrayList<String>();
for (Ecoregion region : ecoregion) {
ids.add(region.getId());
}
assertThat(ids.contains("one:123"), is(true));
assertThat(ids.contains("two:123"), is(true));
assertThat(ids.contains("three:123"), is(true));
assertThat(ecoregion.size(), is(3));
}
Aggregations