Build With EMDS

Extend EMDS with custom connectors, automate workflows, and integrate decision logic into your own applications using Python, C#, R, and more.

Connect Any Data Source

EMDS connectors bridge your data sources to the analytical suite. A connector translates raw spatial or tabular data into inputs that NetWeaver, CDP, BayesFusion, and VisiRule can consume.

Python Connector
from emds import Connector, DataLayer

class MyForestConnector(Connector):
    name = "Forest Condition Layer"

    def compute(self, context) -> DataLayer:
        # Load your spatial data
        gdf = context.load_vector("forest_stands.shp")

        # Transform to EMDS scale [0, 1]
        gdf["condition"] = normalize(
            gdf["basal_area"], method="zscore"
        )
        return DataLayer.from_geodataframe(gdf, "condition")
C# Connector (ArcGIS Pro)
using EmdsFramework.Connectors;
using EmdsFramework.Layers;

public class ForestConnector : IEmdsConnector
{
    public string Name => "Forest Condition";

    public DataLayer Compute(EmdsContext ctx)
    {
        var fc = ctx.OpenFeatureClass("ForestStands");
        var values = fc.Select("BasalArea")
                       .Normalize(NormMethod.ZScore);
        return new DataLayer("condition", values);
    }
}

Wexflow Integration

Complex EMDS processing pipelines can be orchestrated using Wexflow, an open-source workflow engine. Define multi-step processing graphs that chain connectors, analytical engines, and output tasks.

Wexflow integration enables:

  • Scheduled and event-driven analysis runs
  • Multi-step connector chains with conditional branching
  • Error handling and retry logic
  • Integration with external data pipelines
  • Audit trails for regulatory compliance
Wexflow Documentation β†’

Wexflow Quick Setup

Add EMDS tasks to a Wexflow XML workflow definition:

<Workflow id="1" name="Forest Assessment">
  <Tasks>
    <Task id="1" name="LoadData"
      description="Load forest inventory">
      <Setting name="connector"
        value="ForestConnector" />
    </Task>
    <Task id="2" name="RunNetWeaver"
      description="Run logic network">
      <Setting name="model"
        value="ConditionAssessment.nwm" />
    </Task>
  </Tasks>
</Workflow>

Write in the Language You Know

🐍

Python

Full connector SDK. Supported on ArcGIS Pro and QGIS. Primary connector language for QGIS.

Full Support
C#

C#

Native connector development for ArcGIS Pro. Deepest integration and highest performance.

ArcGIS Pro
R

R

Statistical computing connectors for research-grade ecological modeling and analysis.

Connector Support
JS

JavaScript

Web connector framework for EMDS Online integrations and custom browser-based tools.

Online Only

Ready to build?

Download EMDS, explore the documentation, or get in touch with the team for developer support.

⬇ Download EMDS Documentation β†’
An unhandled error has occurred. Reload πŸ—™