Skip to content
Snippets Groups Projects
Commit b4afa42f authored by Erik Reid's avatar Erik Reid
Browse files

Merge branch 'feature/make-standard-doc-layout'

parents a5ae4063 663cb62c
No related branches found
No related tags found
No related merge requests found
sphinx-build -b html -t drawio docs/source docs/build
openapi.json
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
# from the environment for the first two. # from the environment for the first two.
SPHINXOPTS ?= SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build SPHINXBUILD ?= sphinx-build
SOURCEDIR = . SOURCEDIR = source
BUILDDIR = _build BUILDDIR = build
# Put it first so that "make" without argument is like "make help". # Put it first so that "make" without argument is like "make help".
help: help:
......
@ECHO OFF
pushd %~dp0
REM Command file for Sphinx documentation
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set SOURCEDIR=.
set BUILDDIR=_build
%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.https://www.sphinx-doc.org/
exit /b 1
)
if "%1" == "" goto help
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
goto end
:help
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
:end
popd
API specification
==================
Generated by openapi.json file obtained from fastapi.
Docs are also available at the /docs route of a running server.
.. openapi:: ./openapi.json
...@@ -2,29 +2,58 @@ ...@@ -2,29 +2,58 @@
# #
# For the full list of built-in configuration values, see the documentation: # For the full list of built-in configuration values, see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html # https://www.sphinx-doc.org/en/master/usage/configuration.html
from datetime import datetime
import json
import os import os
import sys import sys
sys.path.insert(0, os.path.abspath("../mapping_provider"))
sys.path.insert(
0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ".."))
)
from mapping_provider import create_app
# -- Project information ----------------------------------------------------- # -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
project = 'Mapping Provider' project = 'GÉANT Mapping Provider'
copyright = '2025, GÉANT' copyright = f"{datetime.now().year}, GÉANT"
author = 'GÉANT' author = 'swd@geant.org'
release = '0.1' release = '0.0'
# -- General configuration --------------------------------------------------- # -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
extensions = ['sphinx.ext.autodoc'] extensions = [
"sphinx_rtd_theme",
# "sphinx.ext.autodoc",
"sphinx.ext.coverage",
"sphinxcontrib.plantuml",
"sphinxcontrib.openapi",
]
# tags is injected by sphinx into conf.py
# toggle this by running ``sphinx-build -t drawio``
if tags.has("drawio"): # noqa F821
extensions.append("sphinxcontrib.drawio")
templates_path = ['_templates'] templates_path = ['_templates']
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] exclude_patterns = []
plantuml = f'java -jar {os.path.expanduser("~/bin/plantuml.jar")}'
# -- Options for HTML output ------------------------------------------------- # -- Options for HTML output -------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
html_theme = 'alabaster' html_theme = 'sphinx_rtd_theme'
html_static_path = ['_static'] html_static_path = ['_static']
api_schema = create_app().openapi()
openapi_filename = os.path.join(os.path.dirname(__file__), "openapi.json")
with open(openapi_filename, 'w') as f:
json.dump(api_schema, f, indent=4)
<mxfile host="Electron" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/26.0.9 Chrome/128.0.6613.186 Electron/32.2.5 Safari/537.36" version="26.0.9">
<diagram name="hl-arch" id="52Qc7nEq3IphXZwXqFKS">
<mxGraphModel dx="1579" dy="543" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="qRnl4kCob0Xuz_cL3leS-1" value="mapping provider" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;verticalAlign=bottom;align=right;spacingRight=5;" vertex="1" parent="1">
<mxGeometry x="110" y="30" width="240" height="240" as="geometry" />
</mxCell>
<mxCell id="qRnl4kCob0Xuz_cL3leS-2" value="map web server" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;verticalAlign=bottom;align=right;spacingRight=5;" vertex="1" parent="1">
<mxGeometry x="-230" y="70" width="270" height="260" as="geometry" />
</mxCell>
<mxCell id="qRnl4kCob0Xuz_cL3leS-3" value="processor&lt;div&gt;web&lt;/div&gt;&lt;div&gt;service&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="-120" y="170" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="qRnl4kCob0Xuz_cL3leS-4" value="mapping-provider" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="170" y="170" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="qRnl4kCob0Xuz_cL3leS-5" value="GSO" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="460" y="50" width="110" height="60" as="geometry" />
</mxCell>
<mxCell id="qRnl4kCob0Xuz_cL3leS-6" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="qRnl4kCob0Xuz_cL3leS-3" target="qRnl4kCob0Xuz_cL3leS-4">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="110" y="260" as="sourcePoint" />
<mxPoint x="160" y="210" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="qRnl4kCob0Xuz_cL3leS-7" value="REST" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="50" y="175" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="qRnl4kCob0Xuz_cL3leS-8" value="template" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=12;dashed=1;dashPattern=1 2;" vertex="1" parent="1">
<mxGeometry x="-100" y="270" width="80" height="30" as="geometry" />
</mxCell>
<mxCell id="qRnl4kCob0Xuz_cL3leS-9" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="qRnl4kCob0Xuz_cL3leS-8" target="qRnl4kCob0Xuz_cL3leS-3">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="110" y="280" as="sourcePoint" />
<mxPoint x="160" y="230" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="qRnl4kCob0Xuz_cL3leS-10" value="Client" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" vertex="1" parent="1">
<mxGeometry x="-400" y="105" width="30" height="60" as="geometry" />
</mxCell>
<mxCell id="qRnl4kCob0Xuz_cL3leS-11" value="map/gui" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=12;" vertex="1" parent="1">
<mxGeometry x="-210" y="120" width="80" height="30" as="geometry" />
</mxCell>
<mxCell id="qRnl4kCob0Xuz_cL3leS-12" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=80;entryDy=21;entryPerimeter=0;" edge="1" parent="1" source="qRnl4kCob0Xuz_cL3leS-3" target="qRnl4kCob0Xuz_cL3leS-11">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="30" y="270" as="sourcePoint" />
<mxPoint x="80" y="220" as="targetPoint" />
<Array as="points">
<mxPoint x="-60" y="141" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="qRnl4kCob0Xuz_cL3leS-13" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="qRnl4kCob0Xuz_cL3leS-11" target="qRnl4kCob0Xuz_cL3leS-10">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="30" y="250" as="sourcePoint" />
<mxPoint x="80" y="200" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="qRnl4kCob0Xuz_cL3leS-14" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="qRnl4kCob0Xuz_cL3leS-5" target="qRnl4kCob0Xuz_cL3leS-4">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="170" y="230" as="sourcePoint" />
<mxPoint x="480" y="200" as="targetPoint" />
<Array as="points">
<mxPoint x="420" y="80" />
<mxPoint x="420" y="200" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="qRnl4kCob0Xuz_cL3leS-15" value="Inventory Provider" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="460" y="130" width="110" height="60" as="geometry" />
</mxCell>
<mxCell id="qRnl4kCob0Xuz_cL3leS-16" value="Dashboard" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="460" y="205" width="110" height="60" as="geometry" />
</mxCell>
<mxCell id="qRnl4kCob0Xuz_cL3leS-17" value="BRIAN (InfluxDB)" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="460" y="280" width="110" height="60" as="geometry" />
</mxCell>
<mxCell id="qRnl4kCob0Xuz_cL3leS-18" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="qRnl4kCob0Xuz_cL3leS-17" target="qRnl4kCob0Xuz_cL3leS-4">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="470" y="90" as="sourcePoint" />
<mxPoint x="300" y="210" as="targetPoint" />
<Array as="points">
<mxPoint x="420" y="310" />
<mxPoint x="420" y="200" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="qRnl4kCob0Xuz_cL3leS-19" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="qRnl4kCob0Xuz_cL3leS-15" target="qRnl4kCob0Xuz_cL3leS-4">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="470" y="90" as="sourcePoint" />
<mxPoint x="300" y="210" as="targetPoint" />
<Array as="points">
<mxPoint x="420" y="160" />
<mxPoint x="420" y="200" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="qRnl4kCob0Xuz_cL3leS-20" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="qRnl4kCob0Xuz_cL3leS-16" target="qRnl4kCob0Xuz_cL3leS-4">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="470" y="170" as="sourcePoint" />
<mxPoint x="300" y="210" as="targetPoint" />
<Array as="points">
<mxPoint x="420" y="235" />
<mxPoint x="420" y="200" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="qRnl4kCob0Xuz_cL3leS-21" value="cache/state" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" vertex="1" parent="1">
<mxGeometry x="170" y="50" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="qRnl4kCob0Xuz_cL3leS-22" value="" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;strokeWidth=3;fillColor=#0050ef;strokeColor=#001DBC;" edge="1" parent="1" source="qRnl4kCob0Xuz_cL3leS-4" target="qRnl4kCob0Xuz_cL3leS-21">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="170" y="190" as="sourcePoint" />
<mxPoint x="220" y="140" as="targetPoint" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
.. Mapping Provider documentation master file, created by .. GÉANT Mapping Provider documentation master file, created by
sphinx-quickstart on Fri Apr 11 11:07:12 2025. sphinx-quickstart on Mon Apr 14 11:36:42 2025.
You can adapt this file completely to your liking, but it should at least You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive. contain the root `toctree` directive.
Mapping Provider documentation GÉANT Mapping Provider documentation
============================== ====================================
Add your content using ``reStructuredText`` syntax. See the
`reStructuredText <https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html>`_
documentation for details.
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
:caption: Contents: :caption: Contents:
api
planning
...@@ -19,3 +19,4 @@ Module contents ...@@ -19,3 +19,4 @@ Module contents
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
...@@ -5,3 +5,4 @@ mapping_provider ...@@ -5,3 +5,4 @@ mapping_provider
:maxdepth: 4 :maxdepth: 4
mapping_provider mapping_provider
.. raw:: html
<table border="1">
<thead>
<tr>
<th>NREN</th>
<th>Static Network Map Image</th>
<th>Interactive Network Map</th>
<th>Comment</th>
</tr>
</thead>
<tbody>
<tr>
<td>ACOnet</td>
<td>https://www.aco.net/topologie.html?L=1</td>
</tr>
<tr>
<td>AMRES</td>
<td>https://www.amres.ac.rs/amres/amres-infrastruktura</td>
<td>https://www.amres.ac.rs/amres/amres-infrastruktura</td>
</tr>
<tr>
<td>ARNES</td>
<td>https://www.arnes.si/en/infrastructure/</td>
</tr>
<tr>
<td>ASNET-AM</td>
<td>https://asnet.am/images/skhema1.jpg</td>
</tr>
<tr>
<td>AzScienceNet</td>
<td>https://azsciencenet.az/uploads/AzScienceNet_schem.png</td>
</tr>
<tr>
<td>Belnet</td>
<td>https://www.belnet.be/en/networks/belnet-network</td>
</tr>
<tr>
<td>BASNET</td>
</tr>
<tr>
<td>BREN</td>
</tr>
<tr>
<td>CARNET</td>
</tr>
<tr>
<td>CESNET</td>
<td>https://photonics.cesnet.cz/cs/topologie</td>
<td>https://netreport.cesnet.cz/netreport/</td>
</tr>
<tr>
<td>CSC</td>
<td></td>
<td>https://netmap.funet.fi/</td>
<td>closest to our requirement in terms of overlay and grafana</td>
</tr>
<tr>
<td>CYNET</td>
</tr>
<tr>
<td>DeiC</td>
<td>https://www.deic.dk/en/research-network</td>
</tr>
<tr>
<td>DFN</td>
<td></td>
<td>https://www.dfn.de/netz/</td>
<td>not very informative</td>
</tr>
<tr>
<td>EENet</td>
<td>https://www.eenet.ee/EENet/magistraalvork</td>
</tr>
<tr>
<td>FCCN</td>
<td>https://www.fccn.pt/media/2022/04/Mapa-de-Rede-Fibra-2022.pdf</td>
</tr>
<tr>
<td>GARR</td>
<td>https://www.garr.it/en/infrastructures/network-infrastructure/our-network</td>
<td>https://gins.garr.it/xhome_weathermaps.php</td>
<td>interactive map seems good way to breakdown</td>
</tr>
<tr>
<td>GRENA</td>
<td>https://netview.grena.ge/</td>
<td></td>
<td>login required</td>
</tr>
<tr>
<td>GRNET</td>
<td>
<p>https://grnet.gr/infrastructure/network-and-topology/</p>
<p>https://mon.grnet.gr/networkmap/?type=network&raw=True</p>
<p>https://mon.grnet.gr/networkmap/</p>
</td>https://mon.grnet.gr/pops/</td>
<td>good starting point from site </td>
</tr>
<tr>
<td>HEAnet</td>
<td>https://www.heanet.ie/the-network</td>
<td>https://www.hea.net/</td>
<td>map an service is separately represented</td>
</tr>
<tr>
<td>IUCC</td>
</tr>
<tr>
<td>KIFU</td>
<td>https://kifu.gov.hu/infrastructure/</td>
</tr>
<tr>
<td>KREN</td>
</tr>
<tr>
<td>LAT</td>
</tr>
<tr>
<td>LITNET</td>
<td>https://litnet.lt/</td>
</tr>
<tr>
<td>MARnet</td>
<td>https://ukim.edu.mk/megjunarodna-sorabotka/internacionalizacija/chlenstvo-vo-akademski-mrezhi/</td>
</tr>
<tr>
<td>MREN</td>
<td></td>
<td>https://netmon.ucg.ac.me/mantra/</td>
<td>no map overlay</td>
</tr>
<tr>
<td>PSNC</td>
<td>https://pionier.net.pl/en/about-pionier/#interaktywna_mapa_sieci_pionier</td>
<td>neat representation on side panel</td>
</tr>
<tr>
<td>RARE</td>
<td></td>
<td>https://gfn-gp4l-rare.public.nmaas.eu/dashboards/f/ddyhkm9cflc74c/gp4l</td>
</tr>
<tr>
<td>RASH</td>
<td>https://www.rash.al/media/filer_public_thumbnails/filer_public/bc/a7/bca70fbc-295c-4a4b-9873-92a4a64791b3/rrjeti_i_skeme_i_geant.jpg__1280x736_q85_subsampling-2.jpg
</td>
</tr>
<tr>
<td>RedIRIS</td>
<td>https://www.rediris.es/lared/mapa.html</td>
</tr>
<tr>
<td>RENAM</td>
</tr>
<tr>
<td>RENATER</td>
<td>
<p>https://www.renater.fr/documentation/ressources-multimedia/weathermap/metropole/</p>
<p>https://www.renater.fr/documentation/ressources-multimedia/weathermap/weathermap_domtom/</p>
</td>
</tr>
<tr>
<td>Restena</td>
<td>https://www.restena.lu/en/network</td>
</tr>
<tr>
<td>RHnet</td>
</tr>
<tr>
<td>RoEdunet</td>
</tr>
<tr>
<td>SANET</td>
<td>https://www.sanet.sk/?page_id=2388</td>
</tr>
<tr>
<td>Sikt</td>
<td>https://stats.uninett.no/stat-q/load-map/uninett,,traffic,peak</td>
</tr>
<tr>
<td>SUNET</td>
<td>http://stats.sunet.se/stat-q/load-map/SunetC-univ,,traffic,peak</td>
</tr>
<tr>
<td>SURF</td>
<td></td>
<td>https://netwerkdashboard.surfnet.nl/</td>
<td>inaccesible</td>
</tr>
<tr>
<td>SWITCH</td>
<td>https://static.www.switch.ch/sites/default/files/styles/hero_large_16_9/public/2024-10/omg.png?itok=gDXPFCmI
</td>
</tr>
<tr>
<td>ULAKBIM</td>
<td>https://stat.ulakbim.gov.tr/ulaknet/</td>
<td>small size poor network direction but has integration with data speed info</td>
</tr>
<tr>
<td>URAN</td>
<td>https://uran.ua/~eng/net-ukraine.htm</td>
</tr>
</tbody>
</table>
\ No newline at end of file
Planning, Design, etc
=====================================
.. contents:: Contents
:depth: 4
:local:
Nominal Use Cases/Requirements
------------------------------
- replace intermapper/heat map
- availability
- capacity
- utilisation
- etc.
- integrate with connectivity map
- visualize geant-owned data-driven info on the same map with static (manually input/managed) non-geant data
- monitoring
- health of nodes/edges
- alarms/link state edge heat map
- grid-based for fixed (e.g. our) networks
- handle overlapping edges
Ideas
-----
- For the Geant-managed heat maps: maybe nice to agree upon a simple grid-locked geo-node/edge approach
Some R&E Samples
----------------
- ESNet - Netsage
- https://portal.netsage.global
- https://www.netsage.global
- https://github.com/GlobalNOC/globalnoc-networkmap-panel
- https://grafana.com/grafana/plugins/esnet-networkmap-panel/
- https://github.com/esnet/grafana-esnet-networkmap-panel/tree/main
- Jisc - Netsight3
- https://www.jisc.ac.uk/netsight
- https://netsight3.ja.net/help/
- SURF Netwerk Dashboard
- https://netwerkdashboard.surfnet.nl/
- Reannz weathermap:
- https://weathermap.reannz.co.nz/
- Funet network load map:
- https://netmap.funet.fi/
- NORDUnet:
- https://stats.nordu.net/stat-q/load-map/ndn-map,,traffic,peak
- Pionier/PSNC:
- https://pionier.net.pl/en/about-pionier/#interaktywna_mapa_sieci_pionier
- Timemap (WP6, mainly GARR)
- https://timemap.geant.org/
- https://gitlab.geant.org/fabio.farina/timemap (New link https://gitlab.software.geant.org/fabio.farina/timemap )
Misc Internal things
--------------------
- IS/IS-driven: http://netdash.geant.net:8080/static/isis/geantISIS.svg
- Intermapper
- https://weathermap.geant.org/g59bce200/document/_/!index.html?REFRESH=10+Seconds
- ULAKBIM
- https://stat.ulakbim.gov.tr/ulaknet/
NRENS with their network info
------------------------------
.. include:: nren-maps.html
FrontEnd Technologies worth exploring
--------------------------------------
- Openlayers : https://openlayers.org/
- Leaflet : https://leafletjs.com/
- GeoJson : https://geojson.io/#map=3.53/43.52/6.81
High-Level Architecture
-------------------------
.. only:: drawio
.. drawio-image:: diagrams.drawio
:page-name: hl-arch
Design/Edit concerns for subway map
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- rendered end-user maps are static (i.e. end-user can't move map elements around)
- designers need some way of customizing maps
- draw.io?
- can we support full design control? i.e. artists drawing shapes/effects
- some styles are ok with draw.io
- Designer input
- how should we handle errors in designer input?
- should we have a validation step when designers return their modifications?
- should we keep the design template completely outside of mapping provider? or some metadata (e.g. lists of nodes/edges) in mapping provider?
- Discussion with Andrea:
- Andrea can produce svg's, with some unique id in the id attribute
- front end will update svg based on mapping-provider overlay data
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment