ioos / erddap-gold-standard

Contains the 'gold standard' ERDDAP configuration, with datasets compliant with IOOS Metadata Profile 1.2
https://standards.sensors.ioos.us/erddap/index.html
8 stars 17 forks source link

mermaid flow diagram for ERDDAP #71

Open MathewBiddle opened 6 months ago

MathewBiddle commented 6 months ago

I'd like to create a high level diagram of ERDDAP to promote it's usefulness. Here's an initial mermaid diagram.

flowchart BT
    A1[fa:fa-ship ship] --> B1{ERDDAP}
    A2[glider] --> B2{ERDDAP}
    A3[profile] --> B2
    A4[fa:fa-buoy buoy] --> B3{ERDDAP}
    A5[hfradar] --> B3
    B1 --> C{fa:fa-database Federated ERDDAP}
    B2 --> C
    B3 --> C
    C <--> D1[fa:fa-person Users]
    C <--> D2[fa:fa-person Users]
    C <--> D3[fa:fa-person Users]
    C <--> D4[fa:fa-person Users]
    B1 <--> D1
MathewBiddle commented 6 months ago

Looking at it from the input data and output data:

---
config:
  sankey:
    showValues: false
    width: 800
    height: 800
    nodeAlignment: center
---
sankey-beta

%%inputs
%%source,target,value
EDDTableFromAsciiFiles,ERDDAP,1
EDDTableFromAsciiService,ERDDAP,1
EDDTableFromAsciiServiceNOS,ERDDAP,1
EDDTableFromAudioFiles,ERDDAP,1
EDDTableFromAwsXmlFiles,ERDDAP,1
EDDTableFromCassandra,ERDDAP,1
EDDTableFromColumnarAsciiFiles,ERDDAP,1
EDDTableFromDapSequence,ERDDAP,1
EDDTableFromDatabase,ERDDAP,1
EDDTableFromEDDGrid,ERDDAP,1
EDDTableFromErddap,ERDDAP,1
EDDTableFromFileNames,ERDDAP,1
EDDTableFromFiles,ERDDAP,1
EDDTableFromHttpGet,ERDDAP,1
EDDTableFromInvalidCRAFiles,ERDDAP,1
EDDTableFromJsonlCSVFiles,ERDDAP,1
EDDTableFromMultidimNcFiles,ERDDAP,1
EDDTableFromNcFiles,ERDDAP,1
EDDTableFromNcCFFiles,ERDDAP,1
EDDTableFromNccsvFiles,ERDDAP,1
EDDTableFromOBIS,ERDDAP,1
EDDTableFromSOS,ERDDAP,1
EDDTableAggregateRows,ERDDAP,1
EDDTableCopy,ERDDAP,1
EDDGridFromAudioFiles,ERDDAP,1
EDDGridFromDap,ERDDAP,1
EDDGridFromEDDTable,ERDDAP,1
EDDGridFromErddap,ERDDAP,1
EDDGridFromEtopo,ERDDAP,1
EDDGridFromFiles,ERDDAP,1
EDDGridFromMergeIRFiles,ERDDAP,1
EDDGridFromNcFiles,ERDDAP,1
EDDGridFromNcFilesUnpacked,ERDDAP,1
EDDGridLonPM180,ERDDAP,1
EDDGridLon0360,ERDDAP,1
EDDGridSideBySide,ERDDAP,1
EDDGridAggregateExistingDimension,ERDDAP,1
EDDGridCopy,ERDDAP,1

%%outputs
%%source,target,value
ERDDAP,.asc,1
ERDDAP,.csv,1
ERDDAP,.csvp,1
ERDDAP,.csv0,1
ERDDAP,.dataTable,1
ERDDAP,.das,1
ERDDAP,.dds,1
ERDDAP,.dods,1
ERDDAP,.esriCsv,1
ERDDAP,.fgdc,1
ERDDAP,.geoJson,1
ERDDAP,.graph,1
ERDDAP,.help,1
ERDDAP,.html,1
ERDDAP,.htmlTable,1
ERDDAP,.iso19115,1
ERDDAP,.itx,1
ERDDAP,.json,1
ERDDAP,.jsonlCSV1,1
ERDDAP,.jsonlCSV,1
ERDDAP,.jsonlKVP,1
ERDDAP,.mat,1
ERDDAP,.nc,1
ERDDAP,.ncHeader,1
ERDDAP,.ncCF,1
ERDDAP,.ncCFHeader,1
ERDDAP,.ncCFMA,1
ERDDAP,.ncCFMAHeader,1
ERDDAP,.nccsv,1
ERDDAP,.nccsvMetadata,1
ERDDAP,.ncoJson,1
ERDDAP,.odvTxt,1
ERDDAP,.subset,1
ERDDAP,.tsv,1
ERDDAP,.tsvp,1
ERDDAP,.tsv0,1
ERDDAP,.wav,1
ERDDAP,.xhtml,1
MathewBiddle commented 6 months ago

ERDDAP Federation:

---
config:
  sankey:
    showValues: false
    width: 800
    height: 600
    nodeAlignment: center
---
sankey-beta

%%inputs
%%source,target,value
ERDDAP1,ERDDAP,9.5
ERDDAP2,ERDDAP,9.5
ERDDAP3,ERDDAP,9.5
ERDDAP4,ERDDAP,9.5

%%outputs
%%source,target,value
ERDDAP,.asc,1
ERDDAP,.csv,1
ERDDAP,.csvp,1
ERDDAP,.csv0,1
ERDDAP,.dataTable,1
ERDDAP,.das,1
ERDDAP,.dds,1
ERDDAP,.dods,1
ERDDAP,.esriCsv,1
ERDDAP,.fgdc,1
ERDDAP,.geoJson,1
ERDDAP,.graph,1
ERDDAP,.help,1
ERDDAP,.html,1
ERDDAP,.htmlTable,1
ERDDAP,.iso19115,1
ERDDAP,.itx,1
ERDDAP,.json,1
ERDDAP,.jsonlCSV1,1
ERDDAP,.jsonlCSV,1
ERDDAP,.jsonlKVP,1
ERDDAP,.mat,1
ERDDAP,.nc,1
ERDDAP,.ncHeader,1
ERDDAP,.ncCF,1
ERDDAP,.ncCFHeader,1
ERDDAP,.ncCFMA,1
ERDDAP,.ncCFMAHeader,1
ERDDAP,.nccsv,1
ERDDAP,.nccsvMetadata,1
ERDDAP,.ncoJson,1
ERDDAP,.odvTxt,1
ERDDAP,.subset,1
ERDDAP,.tsv,1
ERDDAP,.tsvp,1
ERDDAP,.tsv0,1
ERDDAP,.wav,1
ERDDAP,.xhtml,1
srstsavage commented 6 months ago

Would it make sense to label the federating ERDDAP explicitly as "Federating ERDDAP" or similar to drive the point home? A subgraph/box around the data providers and data consumers on top graph would be a nice touch, but maybe not necessary if it's not easy.

MathewBiddle commented 6 months ago

Like this?

---
config:
  sankey:
    showValues: false
    width: 800
    height: 600
    nodeAlignment: center
---
sankey-beta

%%inputs
%%source,target,value
ERDDAP1,Federating ERDDAP,9.5
ERDDAP2,Federating ERDDAP,9.5
ERDDAP3,Federating ERDDAP,9.5
ERDDAP4,Federating ERDDAP,9.5

%%outputs
%%source,target,value
Federating ERDDAP,.asc,1
Federating ERDDAP,.csv,1
Federating ERDDAP,.csvp,1
Federating ERDDAP,.csv0,1
Federating ERDDAP,.dataTable,1
Federating ERDDAP,.das,1
Federating ERDDAP,.dds,1
Federating ERDDAP,.dods,1
Federating ERDDAP,.esriCsv,1
Federating ERDDAP,.fgdc,1
Federating ERDDAP,.geoJson,1
Federating ERDDAP,.graph,1
Federating ERDDAP,.help,1
Federating ERDDAP,.html,1
Federating ERDDAP,.htmlTable,1
Federating ERDDAP,.iso19115,1
Federating ERDDAP,.itx,1
Federating ERDDAP,.json,1
Federating ERDDAP,.jsonlCSV1,1
Federating ERDDAP,.jsonlCSV,1
Federating ERDDAP,.jsonlKVP,1
Federating ERDDAP,.mat,1
Federating ERDDAP,.nc,1
Federating ERDDAP,.ncHeader,1
Federating ERDDAP,.ncCF,1
Federating ERDDAP,.ncCFHeader,1
Federating ERDDAP,.ncCFMA,1
Federating ERDDAP,.ncCFMAHeader,1
Federating ERDDAP,.nccsv,1
Federating ERDDAP,.nccsvMetadata,1
Federating ERDDAP,.ncoJson,1
Federating ERDDAP,.odvTxt,1
Federating ERDDAP,.subset,1
Federating ERDDAP,.tsv,1
Federating ERDDAP,.tsvp,1
Federating ERDDAP,.tsv0,1
Federating ERDDAP,.wav,1
Federating ERDDAP,.xhtml,1
srstsavage commented 6 months ago

Yeah, and on the top level diamond in the top graph. Just makes it faster to comprehend the data flow.

MathewBiddle commented 6 months ago

Okay, I updated that first graph.

srstsavage commented 6 months ago

Looks good to me!