Status message

  • Debug: Image path is empty. in Drupal\twig_tweak\TwigTweakExtension::imageStyleFilter() (line 500 of modules/contrib/twig_tweak/src/TwigTweakExtension.php).
    Drupal\twig_tweak\TwigTweakExtension::imageStyleFilter() (Line: 226)
    __TwigTemplate_8df1bd83ed559173a3a63d5bd75a9cf9->{closure}()
    iterator_to_array() (Line: 75)
    __TwigTemplate_8df1bd83ed559173a3a63d5bd75a9cf9->macro_menu_links() (Line: 54)
    __TwigTemplate_8df1bd83ed559173a3a63d5bd75a9cf9->doDisplay() (Line: 402)
    Twig\Template->yield() (Line: 386)
    Twig\Template->render() (Line: 51)
    Twig\TemplateWrapper->render() (Line: 35)
    Drupal\Core\Template\TwigThemeEngine->renderTemplate() (Line: 428)
    Drupal\Core\Theme\ThemeManager->render() (Line: 500)
    Drupal\Core\Render\Renderer->doRender() (Line: 230)
    Drupal\Core\Render\Renderer->render() (Line: 501)
    Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 93)
    __TwigTemplate_1f1da76b5cb51ab8881687338f81bb09->block_content() (Line: 446)
    Twig\Template->yieldBlock() (Line: 76)
    __TwigTemplate_1f1da76b5cb51ab8881687338f81bb09->doDisplay() (Line: 402)
    Twig\Template->yield() (Line: 386)
    Twig\Template->render() (Line: 51)
    Twig\TemplateWrapper->render() (Line: 35)
    Drupal\Core\Template\TwigThemeEngine->renderTemplate() (Line: 428)
    Drupal\Core\Theme\ThemeManager->render() (Line: 500)
    Drupal\Core\Render\Renderer->doRender() (Line: 253)
    Drupal\Core\Render\Renderer->doRenderRoot() (Line: 143)
    Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() (Line: 634)
    Drupal\Core\Render\Renderer::Drupal\Core\Render\{closure}()
    Fiber->resume() (Line: 649)
    Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 142)
    Drupal\Core\Render\Renderer->renderInIsolation() (Line: 169)
    Drupal\Core\Render\Renderer->doRenderPlaceholder() (Line: 760)
    Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}()
    Fiber->resume() (Line: 771)
    Drupal\Core\Render\Renderer->replacePlaceholders() (Line: 265)
    Drupal\Core\Render\Renderer->doRenderRoot() (Line: 143)
    Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() (Line: 634)
    Drupal\Core\Render\Renderer::Drupal\Core\Render\{closure}()
    Fiber->resume() (Line: 649)
    Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 142)
    Drupal\Core\Render\Renderer->renderInIsolation() (Line: 113)
    Drupal\Core\Render\Renderer->renderRoot() (Line: 253)
    Drupal\Core\Render\HtmlResponseAttachmentsProcessor->renderPlaceholders() (Line: 74)
    Drupal\big_pipe\Render\BigPipeResponseAttachmentsProcessor->processAttachments() (Line: 45)
    Drupal\Core\EventSubscriber\HtmlResponseSubscriber->onRespond() (Line: 246)
    Symfony\Component\EventDispatcher\EventDispatcher::Symfony\Component\EventDispatcher\{closure}() (Line: 206)
    Symfony\Component\EventDispatcher\EventDispatcher->callListeners() (Line: 56)
    Symfony\Component\EventDispatcher\EventDispatcher->dispatch() (Line: 216)
    Symfony\Component\HttpKernel\HttpKernel->filterResponse() (Line: 204)
    Symfony\Component\HttpKernel\HttpKernel->handleRaw() (Line: 76)
    Symfony\Component\HttpKernel\HttpKernel->handle() (Line: 53)
    Drupal\Core\StackMiddleware\Session->handle() (Line: 48)
    Drupal\Core\StackMiddleware\KernelPreHandle->handle() (Line: 28)
    Drupal\Core\StackMiddleware\ContentLength->handle() (Line: 32)
    Drupal\big_pipe\StackMiddleware\ContentLength->handle() (Line: 203)
    Drupal\page_cache\StackMiddleware\PageCache->fetch() (Line: 140)
    Drupal\page_cache\StackMiddleware\PageCache->lookup() (Line: 89)
    Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 48)
    Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 51)
    Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (Line: 53)
    Drupal\Core\StackMiddleware\AjaxPageState->handle() (Line: 54)
    Drupal\Core\StackMiddleware\StackedHttpKernel->handle() (Line: 745)
    Drupal\Core\DrupalKernel->handle() (Line: 19)
    
  • Debug: Image path is empty. in Drupal\twig_tweak\TwigTweakExtension::imageStyleFilter() (line 500 of modules/contrib/twig_tweak/src/TwigTweakExtension.php).
    Drupal\twig_tweak\TwigTweakExtension::imageStyleFilter() (Line: 226)
    __TwigTemplate_8df1bd83ed559173a3a63d5bd75a9cf9->{closure}()
    iterator_to_array() (Line: 75)
    __TwigTemplate_8df1bd83ed559173a3a63d5bd75a9cf9->macro_menu_links() (Line: 54)
    __TwigTemplate_8df1bd83ed559173a3a63d5bd75a9cf9->doDisplay() (Line: 402)
    Twig\Template->yield() (Line: 386)
    Twig\Template->render() (Line: 51)
    Twig\TemplateWrapper->render() (Line: 35)
    Drupal\Core\Template\TwigThemeEngine->renderTemplate() (Line: 428)
    Drupal\Core\Theme\ThemeManager->render() (Line: 500)
    Drupal\Core\Render\Renderer->doRender() (Line: 230)
    Drupal\Core\Render\Renderer->render() (Line: 501)
    Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 93)
    __TwigTemplate_1f1da76b5cb51ab8881687338f81bb09->block_content() (Line: 446)
    Twig\Template->yieldBlock() (Line: 76)
    __TwigTemplate_1f1da76b5cb51ab8881687338f81bb09->doDisplay() (Line: 402)
    Twig\Template->yield() (Line: 386)
    Twig\Template->render() (Line: 51)
    Twig\TemplateWrapper->render() (Line: 35)
    Drupal\Core\Template\TwigThemeEngine->renderTemplate() (Line: 428)
    Drupal\Core\Theme\ThemeManager->render() (Line: 500)
    Drupal\Core\Render\Renderer->doRender() (Line: 253)
    Drupal\Core\Render\Renderer->doRenderRoot() (Line: 143)
    Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() (Line: 634)
    Drupal\Core\Render\Renderer::Drupal\Core\Render\{closure}()
    Fiber->resume() (Line: 649)
    Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 142)
    Drupal\Core\Render\Renderer->renderInIsolation() (Line: 169)
    Drupal\Core\Render\Renderer->doRenderPlaceholder() (Line: 760)
    Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}()
    Fiber->resume() (Line: 771)
    Drupal\Core\Render\Renderer->replacePlaceholders() (Line: 265)
    Drupal\Core\Render\Renderer->doRenderRoot() (Line: 143)
    Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() (Line: 634)
    Drupal\Core\Render\Renderer::Drupal\Core\Render\{closure}()
    Fiber->resume() (Line: 649)
    Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 142)
    Drupal\Core\Render\Renderer->renderInIsolation() (Line: 113)
    Drupal\Core\Render\Renderer->renderRoot() (Line: 253)
    Drupal\Core\Render\HtmlResponseAttachmentsProcessor->renderPlaceholders() (Line: 74)
    Drupal\big_pipe\Render\BigPipeResponseAttachmentsProcessor->processAttachments() (Line: 45)
    Drupal\Core\EventSubscriber\HtmlResponseSubscriber->onRespond() (Line: 246)
    Symfony\Component\EventDispatcher\EventDispatcher::Symfony\Component\EventDispatcher\{closure}() (Line: 206)
    Symfony\Component\EventDispatcher\EventDispatcher->callListeners() (Line: 56)
    Symfony\Component\EventDispatcher\EventDispatcher->dispatch() (Line: 216)
    Symfony\Component\HttpKernel\HttpKernel->filterResponse() (Line: 204)
    Symfony\Component\HttpKernel\HttpKernel->handleRaw() (Line: 76)
    Symfony\Component\HttpKernel\HttpKernel->handle() (Line: 53)
    Drupal\Core\StackMiddleware\Session->handle() (Line: 48)
    Drupal\Core\StackMiddleware\KernelPreHandle->handle() (Line: 28)
    Drupal\Core\StackMiddleware\ContentLength->handle() (Line: 32)
    Drupal\big_pipe\StackMiddleware\ContentLength->handle() (Line: 203)
    Drupal\page_cache\StackMiddleware\PageCache->fetch() (Line: 140)
    Drupal\page_cache\StackMiddleware\PageCache->lookup() (Line: 89)
    Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 48)
    Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 51)
    Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (Line: 53)
    Drupal\Core\StackMiddleware\AjaxPageState->handle() (Line: 54)
    Drupal\Core\StackMiddleware\StackedHttpKernel->handle() (Line: 745)
    Drupal\Core\DrupalKernel->handle() (Line: 19)
    
  • Debug: Image path is empty. in Drupal\twig_tweak\TwigTweakExtension::imageStyleFilter() (line 500 of modules/contrib/twig_tweak/src/TwigTweakExtension.php).
    Drupal\twig_tweak\TwigTweakExtension::imageStyleFilter() (Line: 226)
    __TwigTemplate_8df1bd83ed559173a3a63d5bd75a9cf9->{closure}()
    iterator_to_array() (Line: 75)
    __TwigTemplate_8df1bd83ed559173a3a63d5bd75a9cf9->macro_menu_links() (Line: 54)
    __TwigTemplate_8df1bd83ed559173a3a63d5bd75a9cf9->doDisplay() (Line: 402)
    Twig\Template->yield() (Line: 386)
    Twig\Template->render() (Line: 51)
    Twig\TemplateWrapper->render() (Line: 35)
    Drupal\Core\Template\TwigThemeEngine->renderTemplate() (Line: 428)
    Drupal\Core\Theme\ThemeManager->render() (Line: 500)
    Drupal\Core\Render\Renderer->doRender() (Line: 230)
    Drupal\Core\Render\Renderer->render() (Line: 501)
    Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 93)
    __TwigTemplate_1f1da76b5cb51ab8881687338f81bb09->block_content() (Line: 446)
    Twig\Template->yieldBlock() (Line: 76)
    __TwigTemplate_1f1da76b5cb51ab8881687338f81bb09->doDisplay() (Line: 402)
    Twig\Template->yield() (Line: 386)
    Twig\Template->render() (Line: 51)
    Twig\TemplateWrapper->render() (Line: 35)
    Drupal\Core\Template\TwigThemeEngine->renderTemplate() (Line: 428)
    Drupal\Core\Theme\ThemeManager->render() (Line: 500)
    Drupal\Core\Render\Renderer->doRender() (Line: 253)
    Drupal\Core\Render\Renderer->doRenderRoot() (Line: 143)
    Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() (Line: 634)
    Drupal\Core\Render\Renderer::Drupal\Core\Render\{closure}()
    Fiber->resume() (Line: 649)
    Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 142)
    Drupal\Core\Render\Renderer->renderInIsolation() (Line: 169)
    Drupal\Core\Render\Renderer->doRenderPlaceholder() (Line: 760)
    Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}()
    Fiber->resume() (Line: 771)
    Drupal\Core\Render\Renderer->replacePlaceholders() (Line: 265)
    Drupal\Core\Render\Renderer->doRenderRoot() (Line: 143)
    Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() (Line: 634)
    Drupal\Core\Render\Renderer::Drupal\Core\Render\{closure}()
    Fiber->resume() (Line: 649)
    Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 142)
    Drupal\Core\Render\Renderer->renderInIsolation() (Line: 113)
    Drupal\Core\Render\Renderer->renderRoot() (Line: 253)
    Drupal\Core\Render\HtmlResponseAttachmentsProcessor->renderPlaceholders() (Line: 74)
    Drupal\big_pipe\Render\BigPipeResponseAttachmentsProcessor->processAttachments() (Line: 45)
    Drupal\Core\EventSubscriber\HtmlResponseSubscriber->onRespond() (Line: 246)
    Symfony\Component\EventDispatcher\EventDispatcher::Symfony\Component\EventDispatcher\{closure}() (Line: 206)
    Symfony\Component\EventDispatcher\EventDispatcher->callListeners() (Line: 56)
    Symfony\Component\EventDispatcher\EventDispatcher->dispatch() (Line: 216)
    Symfony\Component\HttpKernel\HttpKernel->filterResponse() (Line: 204)
    Symfony\Component\HttpKernel\HttpKernel->handleRaw() (Line: 76)
    Symfony\Component\HttpKernel\HttpKernel->handle() (Line: 53)
    Drupal\Core\StackMiddleware\Session->handle() (Line: 48)
    Drupal\Core\StackMiddleware\KernelPreHandle->handle() (Line: 28)
    Drupal\Core\StackMiddleware\ContentLength->handle() (Line: 32)
    Drupal\big_pipe\StackMiddleware\ContentLength->handle() (Line: 203)
    Drupal\page_cache\StackMiddleware\PageCache->fetch() (Line: 140)
    Drupal\page_cache\StackMiddleware\PageCache->lookup() (Line: 89)
    Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 48)
    Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 51)
    Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (Line: 53)
    Drupal\Core\StackMiddleware\AjaxPageState->handle() (Line: 54)
    Drupal\Core\StackMiddleware\StackedHttpKernel->handle() (Line: 745)
    Drupal\Core\DrupalKernel->handle() (Line: 19)
    
  • Debug: Image path is empty. in Drupal\twig_tweak\TwigTweakExtension::imageStyleFilter() (line 500 of modules/contrib/twig_tweak/src/TwigTweakExtension.php).
    Drupal\twig_tweak\TwigTweakExtension::imageStyleFilter() (Line: 226)
    __TwigTemplate_8df1bd83ed559173a3a63d5bd75a9cf9->{closure}()
    iterator_to_array() (Line: 75)
    __TwigTemplate_8df1bd83ed559173a3a63d5bd75a9cf9->macro_menu_links() (Line: 54)
    __TwigTemplate_8df1bd83ed559173a3a63d5bd75a9cf9->doDisplay() (Line: 402)
    Twig\Template->yield() (Line: 386)
    Twig\Template->render() (Line: 51)
    Twig\TemplateWrapper->render() (Line: 35)
    Drupal\Core\Template\TwigThemeEngine->renderTemplate() (Line: 428)
    Drupal\Core\Theme\ThemeManager->render() (Line: 500)
    Drupal\Core\Render\Renderer->doRender() (Line: 230)
    Drupal\Core\Render\Renderer->render() (Line: 501)
    Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 93)
    __TwigTemplate_1f1da76b5cb51ab8881687338f81bb09->block_content() (Line: 446)
    Twig\Template->yieldBlock() (Line: 76)
    __TwigTemplate_1f1da76b5cb51ab8881687338f81bb09->doDisplay() (Line: 402)
    Twig\Template->yield() (Line: 386)
    Twig\Template->render() (Line: 51)
    Twig\TemplateWrapper->render() (Line: 35)
    Drupal\Core\Template\TwigThemeEngine->renderTemplate() (Line: 428)
    Drupal\Core\Theme\ThemeManager->render() (Line: 500)
    Drupal\Core\Render\Renderer->doRender() (Line: 253)
    Drupal\Core\Render\Renderer->doRenderRoot() (Line: 143)
    Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() (Line: 634)
    Drupal\Core\Render\Renderer::Drupal\Core\Render\{closure}()
    Fiber->resume() (Line: 649)
    Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 142)
    Drupal\Core\Render\Renderer->renderInIsolation() (Line: 169)
    Drupal\Core\Render\Renderer->doRenderPlaceholder() (Line: 760)
    Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}()
    Fiber->resume() (Line: 771)
    Drupal\Core\Render\Renderer->replacePlaceholders() (Line: 265)
    Drupal\Core\Render\Renderer->doRenderRoot() (Line: 143)
    Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}() (Line: 634)
    Drupal\Core\Render\Renderer::Drupal\Core\Render\{closure}()
    Fiber->resume() (Line: 649)
    Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 142)
    Drupal\Core\Render\Renderer->renderInIsolation() (Line: 113)
    Drupal\Core\Render\Renderer->renderRoot() (Line: 253)
    Drupal\Core\Render\HtmlResponseAttachmentsProcessor->renderPlaceholders() (Line: 74)
    Drupal\big_pipe\Render\BigPipeResponseAttachmentsProcessor->processAttachments() (Line: 45)
    Drupal\Core\EventSubscriber\HtmlResponseSubscriber->onRespond() (Line: 246)
    Symfony\Component\EventDispatcher\EventDispatcher::Symfony\Component\EventDispatcher\{closure}() (Line: 206)
    Symfony\Component\EventDispatcher\EventDispatcher->callListeners() (Line: 56)
    Symfony\Component\EventDispatcher\EventDispatcher->dispatch() (Line: 216)
    Symfony\Component\HttpKernel\HttpKernel->filterResponse() (Line: 204)
    Symfony\Component\HttpKernel\HttpKernel->handleRaw() (Line: 76)
    Symfony\Component\HttpKernel\HttpKernel->handle() (Line: 53)
    Drupal\Core\StackMiddleware\Session->handle() (Line: 48)
    Drupal\Core\StackMiddleware\KernelPreHandle->handle() (Line: 28)
    Drupal\Core\StackMiddleware\ContentLength->handle() (Line: 32)
    Drupal\big_pipe\StackMiddleware\ContentLength->handle() (Line: 203)
    Drupal\page_cache\StackMiddleware\PageCache->fetch() (Line: 140)
    Drupal\page_cache\StackMiddleware\PageCache->lookup() (Line: 89)
    Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 48)
    Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 51)
    Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (Line: 53)
    Drupal\Core\StackMiddleware\AjaxPageState->handle() (Line: 54)
    Drupal\Core\StackMiddleware\StackedHttpKernel->handle() (Line: 745)
    Drupal\Core\DrupalKernel->handle() (Line: 19)
    

What are Digital Twins in ocean science?

Think of a Digital Twin as a living, digital replica of a real ocean system. It’s a virtual simulation that’s connected to its physical counterpart through live data streams. This allows us to predict the future and explore a range of different “what if” scenarios.

These powerful tools are changing how policymakers, researchers, and industry work together, helping them make evidence-based decisions to better manage our oceans.

How are they different from traditional ocean models?

While ocean modelling provides the predictive core, Digital Twins are much bigger than that. They require true collaboration between teams with a whole range of expertise, from ocean observation and software engineering to artificial intelligence, user interface design and ethics. This creates complete solutions that connect scientific discovery with real-world application.

How do Digital Twins help our ocean and climate?

Digital Twins are being developed in many areas of marine science and environmental management, including:

Climate Change

Helping us make precise predictions for carbon sequestration and assess climate impacts.

Biodiversity

Allowing for real-time monitoring of marine ecosystems and the species that live there.

Coastal Protection

Improving coastal defences against sea-level rise and extreme weather.

Marine Operations

Supporting autonomous systems for safer and more efficient ocean exploration.

Sustainable Development

Guiding marine spatial planning to balance the many uses of our oceans.

Food Security

Improving the management of fisheries and the sustainability of aquaculture.

Clean Energy

Optimizing the placement and performance of offshore renewable energy.

How is NOC leading the way in Digital Twin innovation?

We’ve worked with partners across the UK environmental science community to create the Information Management Framework for Environmental Digital Twins (IMFe). This describes how complex streams of information can be managed within Digital Twins, ensuring they can be reused in different scenarios to provide clear and actionable insights.

We are proud partners in DITTO (Digital Twins of the Ocean), an ambitious international programme under the UN Decade of the Ocean. Through this collaboration, we help establish global best practices and share our expertise, making sure the benefits of Digital Twins reach communities all over the world.

What are some examples of Digital Twin projects?

We built a Digital Twin that combined many different data sources to change how we monitor biodiversity, giving us real-time updates on ecosystem health to guide conservation.

Find Out More

We created virtual replicas of our autonomous systems to help optimize how we deploy them and make their operations even safer.

Find Out More

We brought together models and live observations to study coastal flooding risks, giving communities vital early warning capabilities.

Find Out More

Into the Blue Podcast: Digital Twins

In the first series of NOC's award-winning podcast, Into the Blue, Chief Executive Officer Professor John Siddorn spoke about the development of digital twins at NOC and the impact they are having on marine science and the increasing role they'll play in research in the future.

What’s the future for Ocean Digital Twins?

We are moving toward a future where a global network of Digital Twins gives us a real-time, connected understanding of our oceans. This technology will power a new level of cooperation between nations, industries, and communities as we work to manage our shared ocean resources. Through this work, we can shift from simply reacting to problems to becoming proactive stewards of our planet’s most vital systems.

Interested in how Digital Twins could help you? Get in touch with our teams to see how our cutting-edge technology is providing practical solutions for our marine environment.