Swung Hackathon 2019

London, UK ยท info at londonhack2019.com

The Software Underground London Hackathon will be held on June 1st and 2nd 2019 at Work.Life @ Clerkenwell. Join the Software Underground group on Slack and help us in organizing the Hackathon!


  • Registration is now closed. If you want to attend, get in touch with us at info at londonhack2019.com, there might be a last-minute ticket availability.


Work.Life @ Clerkenwell

20 Jerusalem Passage, Clerkenwell, London EC1V 4JP, UK
Here you can find more details about the coworking space Work.Life @ Clerkenwell that will host the Hackathon.


The projects and sprints will take place during the whole time. This schedule mainly lists the tutorials, meals, and other non-coding related events.

Saturday June 1st

Time Activity Contact Comments
8-9 Welcome & breakfast @filippo82
9-12:30 PyTorch tutorial @lmoss[ICL]
12:30-13:30 Lunch Elysia Catering
13-17:30 Dask tutorial Jacob Tomlinson
17:30-18 Wrap up @filippo82

Sunday June 2nd

Time Activity Contact Comments
8-9 Welcome & breakfast @filippo82
9-12:30 Pangeo tutorial Jacob Tomlinson
12:30-13:30 Lunch Elysia Catering
13-16 Code!
16-18 Wrap up @filippo82


We are open to suggestions and contributions. Please contact us if you want to propose a tutorial, a project, or if you want to lead a sprint!

These are the projects that have been proposed on #londonhack2019. Anyone will be able to pitch additional projects on Saturday morning.
  • Explorer Challenge
  • ML and DL respository for the Geosciences
  • Predict non productive time (NPT) based on drilling reports (Volve dataset, CDA dataset potentially)
  • Predicting failures, operational events at facilities: anomaly detection
  • Automated production data quality checks using forecasts, outlier detection (Norway production data or CDA)
  • Recognising well names, fields, countries, companies from unstructured text, like reports or news feeds (Named Entity Recognition, NLP)
  • 3D seismic processing QCs using segyio and xarray
  • Instantaneous velocity V0-k optimization for depth conversion
  • Working to create a standardised Google Earth engine exporter for converting google engine `ImageCollections` to `xarray.Dataset` objects. We will write a preprocessing pipeline that allows the user to specify the image collection of interest and export the image to google drive / cloud and preprocess it into an `xr.Dataset`
  • segyio is a small LGPL licensed C library for easy interaction with SEG-Y and Seismic Unix formatted seismic data, with language bindings for Python and Matlab. Segyio is an attempt to create an easy-to-use, embeddable, community-oriented library for seismic applications. Features are added as they are needed; suggestions and contributions of all kinds are very welcome. There are several options for the sprint, including:
    • New text mode, the current one is pretty rubbish and doesn't handle ascii headers.
    • Support for printing/checking sorting (inline/crossline) that isn't based on magic, internal integers.
    • Documentation and examples!
    • Support for cube operations on non-strict sorted cubes, i.e. cubes with scrambled inlines.
    • "Cube" support for non-cubes, i.e. non-rectangular surveys. Makes stuff like gather and iline work.
    • Support for shot-ordered files.
  • devito is an open-source software to implement optimised finite difference (FD) computation from high-level symbolic problem definitions. Starting from symbolic equations defined in SymPy, Devito employs automated code generation and just-in-time (JIT) compilation to execute FD kernels on multiple computer platforms. Devito's motivating application is exploration seismology, particularly FWI and RTM. Fundamental features such as sophisticated boundary conditions and interpolation are supported. Parallelism (both shared- and distributed-memory) as well as classic stencil optimizations are automatically introduced by the Devito compiler. There are several options for the sprint, including:
    • Developing a complete real-life example going from raw real data to an inversion
    • New Jupyter notebooks (e.g., checkpointing, boundary conditions, ...). This is perfect for someone who needs to learn Devito from scratch.
    • MMS for TTI and elastic operators.
    • Prototyping a GPU backend, by manually writing the CUDA/OpenCL/... code that Devito will have to generate (e.g., how do we do source injection on the GPU?)
    • We're open to ideas!
  • pylops - Linear operators and inverse problems are at the core of many of the most used algorithms in signal processing, image processing, and remote sensing. In large-scale, real-life inverse problems creating dense (or sparse) matrices is most often not a viable, neither efficient solution; on the other hand, as-hoc code can be written to mimic the effect of a mathematical operator on a vector without requiring to define the matrix explicitly. While this is an old and well established concept, Pylops aims to make it easy and accessible to everyone within the Python ecosystem, being performant and scalable while maintaining the expressivity of the underlying linear algebra. Some ideas for a sprint:
    • tackle some of the GitHub issues (mostly new feature, this is not a place to fix the boring stuff)
    • create a class-bases (scikit-like) interface for solvers - to be added in v2.0.0
    • work on more solvers, e.g. improve SPGL1 code (to be included in Pylops or perhaps scipy as discussed already with core scipy dev team)
    • investigate integration of dask for distributed computing of data-heavy inverse problems (multi-dimensional decon, Marchenko redatuming, pre-stack seismic inversion)
    • new tutorials with medical imaging applications combining Pylops and the ASTRA toolbox
    • anything you want to work on!
  • TensorFlow global docs sprint
  • SWUNG subsurface sprint. subsurface is a core library for subsurface science and engineering.
  • Pytorch - Organized by Lukas Moss, Imperial College
  • Pangeo - Organized by Jacob Tomlinson, InformaticsLab
  • Dask - Organized by Jacob Tomlinson, InformaticsLab