use of org.eol.globi.domain.LocationImpl in project eol-globi-data by jhpoelen.
the class ExporterOccurrencesTest method createTestData.
private void createTestData(Double length) throws NodeFactoryException, ParseException {
Study myStudy = nodeFactory.createStudy(new StudyImpl("myStudy", null, null, null));
Specimen specimen = nodeFactory.createSpecimen(myStudy, new TaxonImpl("Homo sapiens", "EOL:327955"));
specimen.setStomachVolumeInMilliLiter(666.0);
specimen.setLifeStage(new TermImpl("GLOBI:JUVENILE", "JUVENILE"));
specimen.setPhysiologicalState(new TermImpl("GLOBI:DIGESTATE", "DIGESTATE"));
specimen.setBodyPart(new TermImpl("GLOBI:BONE", "BONE"));
nodeFactory.setUnixEpochProperty(specimen, ExportTestUtil.utcTestDate());
if (null != length) {
specimen.setLengthInMm(length);
}
Location location = nodeFactory.getOrCreateLocation(new LocationImpl(12.0, -1.0, -60.0, null));
specimen.caughtIn(location);
Specimen wolf1 = eatWolf(specimen, myStudy);
wolf1.caughtIn(location);
Specimen wolf2 = eatWolf(specimen, myStudy);
wolf2.caughtIn(location);
}
use of org.eol.globi.domain.LocationImpl in project eol-globi-data by jhpoelen.
the class StudyImporterForCook method importStudy.
@Override
public void importStudy() throws StudyImporterException {
LabeledCSVParser parser;
try {
parser = parserFactory.createParser(DATASET_RESOURCE_NAME, CharsetConstant.UTF8);
} catch (IOException e) {
throw new StudyImporterException("failed to read resource", e);
}
String citation = "Cook CW. The Early Life History and Reproductive Biology of Cymothoa excisa, a Marine Isopod Parasitizing Atlantic Croaker, (Micropogonias undulatus), along the Texas Coast. 2012. Master Thesis. Available from http://repositories.lib.utexas.edu/handle/2152/ETD-UT-2012-08-6285.";
StudyImpl study1 = new StudyImpl("Cook 2012", "Data provided by Colt W. Cook. Also available from http://repositories.lib.utexas.edu/handle/2152/ETD-UT-2012-08-6285.", null, citation);
study1.setExternalId("http://repositories.lib.utexas.edu/handle/2152/ETD-UT-2012-08-6285");
Study study = nodeFactory.getOrCreateStudy(study1);
try {
Double latitude = LocationUtil.parseDegrees("27º51'N");
Double longitude = LocationUtil.parseDegrees("97º8'W");
Location sampleLocation = nodeFactory.getOrCreateLocation(new LocationImpl(latitude, longitude, -3.0, null));
try {
while (parser.getLine() != null) {
Specimen host = nodeFactory.createSpecimen(study, new TaxonImpl("Micropogonias undulatus", null));
host.setLengthInMm(Double.parseDouble(parser.getValueByLabel("Fish Length")) * 10.0);
String dateString = parser.getValueByLabel("Date");
Date collectionDate = DateUtil.parsePatternUTC(dateString, "MM/dd/yyyy").toDate();
nodeFactory.setUnixEpochProperty(host, collectionDate);
host.caughtIn(sampleLocation);
String[] isoCols = { "Iso 1", "Iso 2", "Iso 3", "Iso 4 ", "Iso 5" };
for (String isoCol : isoCols) {
addParasites(parser, study, sampleLocation, host, collectionDate, isoCol);
}
}
} catch (IOException e) {
throw new StudyImporterException("failed to parse [" + DATASET_RESOURCE_NAME + "]", e);
} catch (IllegalArgumentException e) {
throw new StudyImporterException("failed to parse date", e);
}
} catch (NodeFactoryException e) {
throw new StudyImporterException("failed to create host and parasite taxons", e);
}
}
use of org.eol.globi.domain.LocationImpl in project eol-globi-data by jhpoelen.
the class StudyImporterForBell method getLocation.
protected Location getLocation(LabeledCSVParser parser, Specimen parasite) throws NodeFactoryException {
String latitude = parser.getValueByLabel("DEC_LAT");
String longitude = parser.getValueByLabel("DEC_LONG");
Location location = null;
if (StringUtils.isNotBlank(latitude) && StringUtils.isNotBlank(longitude)) {
location = nodeFactory.getOrCreateLocation(new LocationImpl(Double.parseDouble(latitude), Double.parseDouble(longitude), null, null));
}
return location;
}
use of org.eol.globi.domain.LocationImpl in project eol-globi-data by jhpoelen.
the class StudyImporterForSzoboszlaiIT method importAll.
@Test
public void importAll() throws StudyImporterException, IOException {
JsonNode config = new ObjectMapper().readTree("{ \"citation\": \"Szoboszlai AI, Thayer JA, Wood SA, Sydeman WJ, Koehn LE (2015) Data from: Forage species in predator diets: synthesis of data from the California Current. Dryad Digital Repository. http://dx.doi.org/10.5061/dryad.nv5d2\",\n" + " \"doi\": \"http://dx.doi.org/10.5061/dryad.nv5d2\",\n" + " \"format\": \"szoboszlai\",\n" + " \"resources\": {\n" + " \"links\": \"http://datadryad.org/bitstream/handle/10255/dryad.94536/CCPDDlinkdata_v1.csv\",\n" + " \"shapes\": \"http://datadryad.org/bitstream/handle/10255/dryad.94535/CCPDDlocationdata_v1.zip\"\n" + " }\n" + "}");
DatasetImpl dataset = new DatasetImpl("someRepo", URI.create("http://example.com"));
dataset.setConfig(config);
ParserFactory parserFactory = new ParserFactoryForDataset(dataset);
StudyImporterForSzoboszlai importer = new StudyImporterForSzoboszlai(parserFactory, nodeFactory);
importer.setDataset(dataset);
importStudy(importer);
List<Study> allStudies = NodeUtil.findAllStudies(getGraphDb());
assertThat(allStudies.size(), is(not(0)));
Study firstStudy = allStudies.get(0);
Iterable<Relationship> specimens = NodeUtil.getSpecimens(firstStudy);
for (Relationship specimen : specimens) {
Specimen specimenNode = new SpecimenNode(specimen.getEndNode());
Location sampleLocation = specimenNode.getSampleLocation();
assertThat(sampleLocation, is(notNullValue()));
assertThat(sampleLocation.getLatitude(), is(notNullValue()));
assertThat(sampleLocation.getLongitude(), is(notNullValue()));
}
assertThat(taxonIndex.findTaxonByName("Thunnus thynnus"), is(notNullValue()));
assertThat(nodeFactory.findLocation(new LocationImpl(34.00824202376044, -120.72716166720323, null, null)), is(notNullValue()));
}
use of org.eol.globi.domain.LocationImpl in project eol-globi-data by jhpoelen.
the class StudyImporterForBrose method addInteractionForConsumer.
private void addInteractionForConsumer(LabeledCSVParser parser, Study localStudy, String predatorName) throws NodeFactoryException, StudyImporterException {
Location location = null;
String locationString = parser.getValueByLabel("Geographic location");
LatLng latLng = LOC_MAP.get(StringUtils.trim(locationString));
if (latLng == null) {
getLogger().warn(localStudy, "failed to find location for [" + locationString + "]");
} else {
location = nodeFactory.getOrCreateLocation(new LocationImpl(latLng.getLat(), latLng.getLng(), null, null));
String habitat = StringUtils.join(parser.getValueByLabel("General habitat"), " ", parser.getValueByLabel("Specific habitat"));
String habitatId = "BROSE:" + habitat.replaceAll("\\W", "_");
nodeFactory.getOrCreateEnvironments(location, habitatId, habitat);
}
Specimen consumer = nodeFactory.createSpecimen(localStudy, new TaxonImpl(predatorName, null));
consumer.caughtIn(location);
addLifeStage(parser, consumer, "Lifestage consumer");
String name = getName(parser, "Taxonomy resource", "Common name(s) resource");
if (StringUtils.isBlank(name) || StringUtils.length(name) < 2) {
String message = "found (near) empty prey name on line [" + parser.lastLineNumber() + "] + [" + name + "]";
LOG.warn(message);
getLogger().warn(localStudy, message);
} else {
Specimen resource = nodeFactory.createSpecimen(localStudy, new TaxonImpl(name, null));
resource.caughtIn(location);
addLifeStage(parser, resource, "Lifestage - resource");
String interactionType = parser.getValueByLabel("Type of feeding interaction");
Map<String, InteractType> typeMapping = new HashMap<String, InteractType>() {
{
put("predacious", InteractType.PREYS_UPON);
put("predator", InteractType.PREYS_UPON);
put("herbivorous", InteractType.ATE);
put("parasitoid", InteractType.PARASITE_OF);
put("parasitic", InteractType.PARASITE_OF);
put("bacterivorous", InteractType.ATE);
put("omnivore", InteractType.ATE);
put("detritivorous", InteractType.ATE);
put("pathogen", InteractType.PATHOGEN_OF);
}
};
InteractType interactType = typeMapping.get(interactionType);
if (interactType == null) {
throw new StudyImporterException("found unsupported interaction type [" + interactionType + "]");
}
consumer.interactsWith(resource, interactType);
}
}
Aggregations