netcdfIOProvider APICapella Datascience provides modular extension points allowing third-party plugins to contribute custom protocols, I/O providers, data adapters, and visualization engines.
org.polarsys.capella.datascience.netcdf.model.netcdfIOProviderThis extension point enables contributing custom NetCDF file providers for non-standard URI schemes (e.g. AWS S3, Google Cloud Storage, specialized HTTP streams, or encrypted archives).
<extension-point id="netcdfIOProvider" name="Netcdf IO Provider" schema="schema/netcdfIOProvider.exsd"/>
plugin.xml<extension point="org.polarsys.capella.datascience.netcdf.model.netcdfIOProvider">
<netcdfIOProvider
class="com.example.custom.CustomNetcdfIOProvider"
id="com.example.custom.provider">
</netcdfIOProvider>
</extension>
INetcdfFileProvider
Your provider class must implement org.polarsys.capella.datascience.netcdf.ncml.extension.INetcdfFileProvider:
package com.example.custom;
import java.util.List;
import org.polarsys.capella.datascience.netcdf.ncml.extension.INetcdfFileProvider;
import ucar.nc2.NetcdfFile;
public class CustomNetcdfIOProvider implements INetcdfFileProvider {
@Override
public List<String> getSources() {
// Return URI prefixes/schemes handled by this provider
return List.of("s3://", "cdms3://", "mycustom://");
}
@Override
public NetcdfFile getNetcdfFile(String location) {
// Resolve and return a UCAR NetcdfFile instance for the location
return CustomStorageClient.openNetcdf(location);
}
}
| Class | Key Methods | Purpose |
|---|---|---|
NcmlUtils.instance |
getNetCDF(EObject)getVariableExt(NetcdfType, String)resolveDimensionsExt(VariableType)getAttributeExt(VariableType, String)
|
Fast navigation, query, and dimension resolution on EMF NetCDF/NcML models. |
NetcdfNativeRegistry.instance |
get(String location)register(String location, NetcdfFile)unregister(String location)
|
Thread-safe caching of native UCAR NetcdfFile instances with automatic workspace resource change tracking. |
NCConfigResourceUtils |
loadConfigBook(File)saveConfigBook(NCVisualizationConfigBook, File)saveConfigToFile(NCVisualizationConfig, File)
|
Loading, saving, and resolving proxies for .ncconfig books without dangling external references. |
ImageUtils.instance |
computeImageFromDimsAndPaletteIfAnyWithExtraInfo(...)getInterpolatedColorPaletteIfNecessary(depth, pInfo)getPalette(paletteId)
|
Color palette lookup, gradient interpolation, missing value masking, and SWT ImageData generation. |