crotwell / seisFile

A library for reading and writing seismic file formats in java.
GNU Lesser General Public License v3.0
27 stars 20 forks source link

Local quakeml file #34

Closed andreabono closed 5 months ago

andreabono commented 5 months ago

Is there a way to read a QuakeML file that's local on my hard disk?
I mean something like:

public edu.sc.seis.seisFile.fdsnws.quakeml.Event read_single_quakeml(String local_quakeml_filename){

}
crotwell commented 5 months ago

Try something like:

BufferedReader buf = new BufferedReader(new FileReader(quakemlFile));
Quakeml qml = Quakeml.loadQuakeML(buf);
EventIterator eIt = qml.getEventParameters().getEvents();
while (eIt.hasNext()) {
    Event ev = eIt.next();
    ...
}
buf.close();

I have added some helper methods to make this easier that will be in the next version.

andreabono commented 5 months ago

Sorry but Quakeml.loadQuakeML does not exist in edu.sc.seis.seisFile.fdsnws.quakeml.

crotwell commented 5 months ago

Ah, sorry, haven't had my coffee yet... I think this will work.

BufferedReader buf = new BufferedReader(new FileReader(quakemlFile));
XMLInputFactory factory = XMLInputFactory.newInstance();
XMLEventReader r = factory.createXMLEventReader(buf);
Quakeml qml = new Quakeml(r);
EventIterator eIt = qml.getEventParameters().getEvents();
while (eIt.hasNext()) {
    Event ev = eIt.next();
    ...
}
buf.close();
andreabono commented 5 months ago

That's perfect!!
Thaks a lot!!