Nuclear data web portal tools

navigate the slides with left and right keys

ShimPlotWell : an adventure in online nuclear data visualisation

J. Shimwell                          

This work was funded by the RCUK Energy Programme
[Grant number EP/P012450/1]

Live broadcast available on


  • Required a quick method of generating macroscopic cross section plots for materials.
  • Required a quick method of plotting microscopic cross section plots for different isotope and different reactions.

Web based plotting

Client side: JavaScript,

React JS, HTML5

Rest APIs

Online databases

Storage buckets

Hosted containers

Virtual machines

Cloud computing



An Application Program Interface (API) that uses HTTP requests to access data



url =

json_query = {'protons':3, 

request = url + '?' + json_query
code awaiting request written in 

Node.js, Python, Java 8, C# or Go
A JSON response

response = {'count':12}

RESTful API - counting entries

Demonstration of a RESTful API designed to count the number of matching entries in a database of cross sections



Python scripts + PyMongo library + zappa deployment + AWS

Deployment of with Zappa

RESTful API - matching entries

Demonstration of a RESTful API designed to return the matching entries in a database


Python scripts + PyMongo library + zappa deployment + AWS

Serverless computing

Available from public cloud providers

  • Amazon Web Services (Lambda functions)
  • Google Cloud functions
  • Microsoft Azure Cloud functions


Cloud native apps using serverless functions

  • Continuous scalable                                    
  • Flexibility
  • Cost effective (no pay for idle)
  • Fully managed service
  • Easily deployable

Online database

Adding to the database


Search for matching entries


Retrieving matching results

data = {"element_full": "antimony", 
        "element": "sb", 
        "nucleon_number": "118m", 
        "products": "nonelas", 
        "mt_number": "3", 
        "proton_number": "51", 
        "neutron_number": "67", 
        "incident_particle": "d", 
        "library": "tendl.2017"}


result = collection.find(search_dictionary)

{"results": [{"mt_number": "103", "proton_number": "92", "incident_particle": "h", "element": "u", "neutron_number": "135", "products": "p", "library": "tendl.2017", "nucleon_number": "227", "element_full": "uranium", "score": 0.0}, 
             {"mt_number": "104", "proton_number": "92", "incident_particle": "h", "element": "u", "neutron_number": "135", "products": "d", "library": "tendl.2017", "nucleon_number": "227", "element_full": "uranium", "score": 0.0}, 
             {"mt_number": "105", "proton_number": "92", "incident_particle": "h", "element": "u", "neutron_number": "135", "products": "t", "library": "tendl.2017", "nucleon_number": "227", "element_full": "uranium", "score": 0.0}...]}

NoSQL databases gaining popularity in Web 2.0 due to ability to scale horizontally using clusters of machines and database "fragments"

Online database

Vertical Scaling

relational SQL databases

Horizontal Scaling



Online database


  • Cross browser / device compatibility
  • Input / output data formats (JSON EPS SVG PDF)
  • Customizability
  • Range of charts available
  • Learning curve
  • Compatibility with web frameworks
  • Performance
  • Community support

JavaScript based web compatible plotting libraries.

Over 20 options including D3, Plotly, Chart.js, Fusion chart etc


Plotting libraries

Tritium breeding

Radioactivity - activation

Use of cloud functions together with NoSQL databases and online storage solutions.

A scalable solution

Current monthly cost £0.42

  • 15GB of online nuclear data cross sections,
  • 350MB online database,
  • 3 Lambda functions for searching and retrieving data.

AWS Lambda costs

  • Monthly free usage limits
    • 1,000,000 requests
    • Up to 3,200,000 s of compute
  • Thereafter
    • $0.20 per 1M requests
    • 0.00001667 for every GB sec

A world wide solution

Locate services at AWS nodes or edge locations

to achieve the lowest latency

Javascript and HTML based website that queries rest APIs to find and plot data

Rest API for searching database

Nuclear data cross sections

Database describing available nuclear data

Webpage graphical user interface

Plotting library

Putting everything together

Rest API for retrieving xs data

Rest API for counting matches

Putting everything together again

Using Dash the Plotly framework for creating web applications

Rest API for searching database

Nuclear data cross sections

Database describing available nuclear data

Web-app graphical user interface

Plotting library

Rest API for retrieving xs data

Rest API for counting matches

Putting everything together

alternative framework options


React makes it painless to create interactive UIs. Design simple views for each state in your application, and React will efficiently update and render just the right components when your data changes.


Build encapsulated components that manage their own state, then compose them to make complex UIs.


Learn Once, Write Anywhere

We don’t make assumptions about the rest of your technology stack, so you can develop new features in React without rewriting existing code.

React can also render on the server using Node and power mobile apps using React Native.

Database are capable of representing preprocessed collections of nuclear data

Nuclear data on the fly

Producing nuclear data for every possible temperature for all isotopes and all reactions would lead to a large database.

Generating nuclear data on the fly as specified by the user would be a more suitable solution and avoid searching a huge databases

Introducing OpenMC nuclear processing capabilities

  1. Python based API
  2. Cross section extraction tools
  3. Microscopic cross sections for isotopes and element reactions
  4. Material construction tools
  5. Combine isotopes and elements
  6. Macroscopic cross sections for materials
  7. Unified energy grid allowing different reactions to be combined
  8. Nuclear data extraction from h5 files
  9. Fast access time to schema hdf5
  10. ACE file conversion to h5 files is available

Nuclear data on the fly

Containerized web-app with all the required software and data.

Nuclear data


Putting everything together try 3


  • Many options exist for creating a nuclear data web portal.
  • Capability of web technology has increase while the cost of has decreased.
  • Cloud computing offers world wide deployment of compute and data with options for scaling up.
  • Development of web technologies such as JavaScript based plotting libraries allows improved interactivity.
  • Producing a data centric web-app is achievable by connecting existing packages together. This reduces the in house development burden and the time to market.


By Jonathan Shimwell


For data vis meeting

  • 264

More from Jonathan Shimwell