To describe how to add support for a new seismic data format to INTGeoServer.
Let’s assume that this seismic data is defined as follows :
One single file (no associated header files)
Extension “.custom”
Create a new empty Java application project in your favorite IDE (e.g. NetBeans).
Get the INTGeoServer.war and extract its contents: i.e. /path/to/INTGeoServer in the IDE, access the project properties and add as dependencies all the JAR files found in /path/to/INTGeoServer/lib/
Create a new class representing our specific file object, extending com.interactive.intgeo.data.filesystem.AbstractFileSystemDataObject
Implement getSecondaryFiles() by returning an empty array, because the example custom format is only based on one single file (no associated header files). This part may differ according to your needs.
Define the extension and the data type for the custom data format by creating a class which extends com.interactive.intgeo.data.filesystem.AbstractFileSystemDataLoader. Implement several methods required by the abstract class as follows (note that our previous custom class extending AbstractFileSystemDataObject is returned by getFileSystemDataObjectClass()) :
Create a file named layer.xml and located in a directory called META-INF/services. The custom data loader must be referenced from this XML file:
Register the custom loader in order to be part of the existing data loaders:
At this point the format description (extension, type), and the file object representation (data object) have been declared.
Now declare the INTGeoServer seismic data class which will allow access to the data by creating a CustomSeismicData class which extends AbstractData and implements ISeismicData (see example here)
Once all of the required methods are implemented, the job is almost done.
The last thing to do so that everything is wired together, is to create a class which extends com.interactive.intgeo.data.filesystem.AbstractFileSystemDataObjectAdapter, Implement the required methods by returning the custom class/instance, and the actual seismic data.
As before, this custom adapter must also be referenced from the layer.xml file in order to be part of the existing adapters.
The final step is optional. It is dedicated to attaching meta data to the custom seismic data format.
Create a class which extends AbstractSeismicMetaDataProvider and implement the required methods. The most important method is fillJSONObject() which populates a JSON object.
The example in this document forces the format name to “custom”.
And last but not least, don’t forget to declare the provider in the layer.xml file:
Compile the project and copy all generated files (e.g. in NetBeans, located in build/classes) to /path/to/INTGeoServer/WEB-INF/classes.
Zip the contents of INTGeoServer changing its extension to .war
You now have an INTGeoServer which supports your custom seismic data format, ready to be deployed.