{"id":352,"date":"2026-11-12T07:03:28","date_gmt":"2026-11-12T12:03:28","guid":{"rendered":"https:\/\/blogs.mathworks.com\/engineering\/?p=352"},"modified":"2026-11-12T07:03:28","modified_gmt":"2026-11-12T12:03:28","slug":"agentic-ai-for-climate-data-in-matlab","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/engineering\/2026\/11\/12\/agentic-ai-for-climate-data-in-matlab\/","title":{"rendered":"Agentic AI for Climate Data in MATLAB"},"content":{"rendered":"<p><!-- Guest blogger introduction --><\/p>\n<div style=\"display: flex; flex-wrap: wrap; align-items: center; gap: 24px; background-color: #e2f0ff; padding: 20px; margin: 0 0 24px;\">\n<div style=\"flex: 0 0 152px; margin: 0; line-height: 0;\"><img decoding=\"async\" src=\"http:\/\/blogs.mathworks.com\/engineering\/files\/2026\/11\/Kostas_Leptokaropoulos.jpg\" class=\"alignnone size-full wp-image-19435\" alt=\"Kostas Leptokaropoulos\" width=\"152\" style=\"display: block !important; width: 152px; max-width: 100% !important; height: auto; margin: 0; float: none;\" \/><\/div>\n<div style=\"flex: 1 1 260px; min-width: 0; margin: 0; font-size: 12pt; line-height: 1.5;\">\n<p style=\"margin: 0 0 12px; font-size: 12pt; line-height: 1.5;\"><strong>Guest blogger: <\/strong><a href=\"https:\/\/www.linkedin.com\/in\/kostas-leptokaropoulos-391a0665\/\"><strong>Kostas Leptokaropoulos<\/strong><\/a><\/p>\n<p style=\"margin: 0; font-size: 12pt; line-height: 1.5;\">Kostas is the MathWorks Geoscience Academic Manager, supporting Geoscience researchers and educators. He is also a visiting lecturer at Aristotle University of Thessaloniki (AUTH).<br \/>\nIn this blog, he describes his experience working with Agentic AI for geoscience data.<\/p>\n<\/div>\n<\/div>\n<div class = rtcContent>\n<h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span class=\"_richTextNode\">I have been experimenting with coding Agents for my geoscience data <\/span><\/h2>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">If you\u2019re not familiar with Agentic AI yet, this resource [<\/span><a href = \"https:\/\/www.mathworks.com\/campaigns\/offers\/next\/agentic-ai-with-matlab.html\"><span class=\"_richTextNode\">Guide to Agentic AI with MATLAB and Simulink<\/span><\/a><span class=\"_richTextNode\">] gives some useful background.<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">When I approach geoscience problems, I often do so by building computational tools. These tools let me interact with the data and draw scientific conclusions. They also let colleagues who are less familiar with programming do the same.<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">If you\u2019ve ever been the \u201ccomputation person\u201d in your lab, you\u2019ll know that developing such tools can take hours, or even days! Using an Agent, I can speed up the process of creating these custom tools. That lets me (and my colleagues) spend more time thinking about the science rather than the coding. <\/span><\/div>\n<h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span class=\"_richTextNode\">My goal is to build a climate data app <\/span><\/h2>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">A lot of my colleagues often want to interface with data, but don&#8217;t want to directly interact with the code. So for my work, building apps like this is common practice. <\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">Before I even start building it, I already have a clear idea in my mind what the end state looks like and I am accelerating the development process with Agentic tools.<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">What I want to get is a visual interface where I can import and visualize climate data and export my selections at the end.<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">I downloaded climate data from <\/span><span class=\"_richTextNode\" style=' font-weight: bold;'>Copernicus<\/span><span class=\"_richTextNode\"> in NetCDF (.nc) format and saved the folder into my working directory as &#8220;<\/span><span class=\"_richTextNode\" style=' font-family: monospace;'>Copernicus_Data&#8221;<\/span><span class=\"_richTextNode\">:  <\/span><a href = \"https:\/\/cds.climate.copernicus.eu\/datasets\/reanalysis-oras5?tab=download\"><span class=\"_richTextNode\">ORAS5 global ocean reanalysis monthly data from 1958 to present<\/span><\/a><span class=\"_richTextNode\">. This data contains information on global ocean and sea-ice reanalysis. If you want to learn more about NetCDF, <\/span><a href = \"https:\/\/www.unidata.ucar.edu\/software\/netcdf\"><span class=\"_richTextNode\">this is a useful resource<\/span><\/a><span class=\"_richTextNode\">. <\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/engineering\/files\/2026\/11\/Copernicus_Demo_Blog_1-2.png\" width = \"637\" height = \"186\" alt = \"\" style = \"vertical-align: baseline; width: 637px; height: 186px;\"><\/img><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">Normally, I would first inspect the NetCDF structure, identify the relevant variables and dimensions, write the code to read and visualize them, add controls for interactive exploration, and then refine the figures and export workflow. None of these steps is particularly unusual, but putting them together into a useful tool takes time. For me, MATLAB is a natural environment for this work because I can explore the data, analyze it, visualize it and build an interactive workflow all in the same place. These are some of the functions I normally use for working with netCDF [<\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/referencelist.html?type=function&amp;s_tid=CRUX_topnav&amp;category=network-common-data-form\"><span class=\"_richTextNode\">netCDF &#8211; Functions<\/span><\/a><span class=\"_richTextNode\">].<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">In this experiment, I wanted to see how much of that implementation work I could automate using a coding Agent (I am using Codex, but other Agentic tools can work too) while keeping control of the scientific choices myself. Because the Agent is working directly with MATLAB, I can build upon the tools and functions I already use, while still ending up with MATLAB code that I can inspect, modify and rerun. For this functionality I am using <\/span><a href = \"https:\/\/www.mathworks.com\/products\/matlab-agentic-toolkit.html\"><span class=\"_richTextNode\">MATLAB Agentic Toolkit<\/span><\/a><span class=\"_richTextNode\">.  <\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\"><\/span><\/div>\n<h2  style = 'margin: 3px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span class=\"_richTextNode\" style=' font-weight: bold;'>Teaching my Agent how to do Geoscience in MATLAB<\/span><span class=\"_richTextNode\"> <\/span><\/h2>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">I created a markdown file (init.md) in which I outlined:<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">1) General approach 2) MATLAB execution 3) netCDF conventions 4) what the deliverable should be<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">I highlighted key MATLAB functions that I know will be useful, what type of projection to use, as well as naming conventions. <\/span><\/div>\n<ul  style = 'margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 13.3333px; '>\n<li  style = 'margin-left: 53.3333px; line-height: 20px; min-height: 0px; text-align: left; white-space: pre-wrap; '><span class=\"_richTextNode\">Use <\/span><span class=\"_richTextNode\" style=' font-family: monospace;'>ncinfo<\/span><span class=\"_richTextNode\"> to identify variables and dimensions.<\/span><\/li>\n<li  style = 'margin-left: 53.3333px; line-height: 20px; min-height: 0px; text-align: left; white-space: pre-wrap; '><span class=\"_richTextNode\">Use <\/span><span class=\"_richTextNode\" style=' font-family: monospace;'>ncread<\/span><span class=\"_richTextNode\"> for data and coordinate variables.<\/span><\/li>\n<li  style = 'margin-left: 53.3333px; line-height: 20px; min-height: 0px; text-align: left; white-space: pre-wrap; '><span class=\"_richTextNode\">Prefer <\/span><span class=\"_richTextNode\" style=' font-family: monospace;'>geoplot<\/span><span class=\"_richTextNode\">, <\/span><span class=\"_richTextNode\" style=' font-family: monospace;'>geoscatter<\/span><span class=\"_richTextNode\">, <\/span><span class=\"_richTextNode\" style=' font-family: monospace;'>imagesc<\/span><span class=\"_richTextNode\">,  <\/span><span class=\"_richTextNode\" style=' font-family: monospace;'>surfm<\/span><span class=\"_richTextNode\">, or other installed MATLAB mapping functions as appropriate.<\/span><\/li>\n<li  style = 'margin-left: 53.3333px; line-height: 20px; min-height: 0px; text-align: left; white-space: pre-wrap; '><span class=\"_richTextNode\">Use the Robinson projection<\/span><\/li>\n<li  style = 'margin-left: 53.3333px; line-height: 20px; min-height: 0px; text-align: left; white-space: pre-wrap; '><span class=\"_richTextNode\">Assume files follow their existing naming convention unless inspection shows otherwise.<\/span><\/li>\n<\/ul>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">Some of these, such as <\/span><span class=\"_richTextNode\" style=' font-family: monospace;'>surfm<\/span><span class=\"_richTextNode\"> and the Robinson projection, come from <\/span><a href = \"https:\/\/www.mathworks.com\/products\/mapping.html\"><span class=\"_richTextNode\">Mapping Toolbox<\/span><\/a><span class=\"_richTextNode\">.<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">The key point is I am providing the Agent my knowledge of the tools and the field of study rather than letting it reinvent the wheel at every step<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\" style=' font-weight: bold;'>Prompt 0:<\/span><span class=\"_richTextNode\"> \u201cRead and understand the init.md file.\u201d<\/span><\/div>\n<h3  style = 'margin: 15px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: 700; text-align: left; '><span class=\"_richTextNode\" style=' font-weight: bold;'>Exploring and visualizing the data<\/span><\/h3>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">Then, I started by:<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\" style=' font-weight: bold;'>Prompt 1:<\/span><span class=\"_richTextNode\"> <\/span><span class=\"_richTextNode\" style=' font-style: italic; font-family: monospace;'>&#8220;Inspect the NetCDF datasets in the @Copernicus_Data Directory. Generate and execute the MATLAB live script (.m file) to select from a dropdown menu Month and Variable. Then plot on two maps the selected variables for 1958 and 2014.&#8221;<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">This is representative of a task I often have when working with environmental data: I have the files, but first I need to understand their structure and then turn them into something I can explore. Instead of specifying every MATLAB function and every step, I describe the result I want. The resulting Live Editor workflow lets me select a <\/span><span class=\"_richTextNode\" style=' font-weight: bold;'>month<\/span><span class=\"_richTextNode\"> and a <\/span><span class=\"_richTextNode\" style=' font-weight: bold;'>variable<\/span><span class=\"_richTextNode\"> and compare the data for <\/span><span class=\"_richTextNode\" style=' font-weight: bold;'>1958 and 2014<\/span><span class=\"_richTextNode\">. <\/span><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/engineering\/files\/2026\/11\/Copernicus_Demo_Blog_2-1.png\" width = \"551\" height = \"316\" alt = \"\" style = \"vertical-align: baseline; width: 551px; height: 316px;\"><\/img><\/div>\n<h3  style = 'margin: 3px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: 700; text-align: left; '><span class=\"_richTextNode\" style=' font-weight: bold;'>Adding suitable colormaps from a public repository<\/span><\/h3>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">Once the basic workflow was working, I wanted more flexibility in how the data were displayed. I&#8217;ll use the <\/span><a href = \"https:\/\/github.com\/mathworks\/Standard-Climate-Colormaps-for-MATLAB\"><span class=\"_richTextNode\">Standard Climate Colormaps for MATLAB<\/span><\/a><span class=\"_richTextNode\">, so my next request was:<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\" style=' font-weight: bold;'>Prompt 2:<\/span><span class=\"_richTextNode\"> <\/span><span class=\"_richTextNode\" style=' font-style: italic; font-family: monospace;'>&#8220;Can you now add the continuous colormaps from the<\/span><span class=\"_richTextNode\"> <\/span><a href = \"https:\/\/github.com\/mathworks\/Standard-Climate-Colormaps-for-MATLAB\"><span class=\"_richTextNode\" style=' font-family: monospace;'>https:\/\/github.com\/mathworks\/Standard-Climate-Colormaps-for-MATLAB<\/span><\/a><span class=\"_richTextNode\"> <\/span><span class=\"_richTextNode\" style=' font-style: italic; font-family: monospace;'>into the live script, to be selected from a drop down menu as well.&#8221;<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">This is a nice example of how I tend to work with an Agent. I don&#8217;t necessarily try to describe the complete application at the beginning. I run something, look at the result and then decide what I want to add or modify. In this case, I wanted to reuse an existing MATLAB resource rather than develop my own colormaps. <\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/engineering\/files\/2026\/11\/Copernicus_Demo_Blog_3-1.png\" width = \"569\" height = \"355\" alt = \"\" style = \"vertical-align: baseline; width: 569px; height: 355px;\"><\/img><\/div>\n<h3  style = 'margin: 3px 10px 5px 4px; padding: 0px; line-height: 20.4px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 17px; font-weight: 700; text-align: left; '><span class=\"_richTextNode\" style=' font-weight: bold;'>Exporting the result<\/span><\/h3>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">Finally, visualization is not necessarily the end of the workflow. I may want to take a subset of the data and use it somewhere else.<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">So my last prompt was very simple:<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\" style=' font-weight: bold;'>Prompt 3:<\/span><span class=\"_richTextNode\"> <\/span><span class=\"_richTextNode\" style=' font-style: italic; font-family: monospace;'>&#8220;Extract the selected parameters to a netcdf file.&#8221;<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">This gives me a small but complete workflow: I can inspect the Copernicus data, interactively select what I am interested in, visualize it, and export the selected data. <\/span><\/div>\n<h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/engineering\/files\/2026\/11\/Copernicus_Demo_Blog_4-1.gif\" width = \"671\" height = \"420\" alt = \"Copernicus_Demo.gif\" style = \"vertical-align: baseline; width: 671px; height: 420px;\"><\/img><\/h2>\n<h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span class=\"_richTextNode\" style=' font-weight: bold;'>Working code isn&#8217;t the same as a useful result<\/span><\/h2>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">The prompts above can produce a working result even without <\/span><span class=\"_richTextNode\" style=' font-family: monospace;'>init.md<\/span><span class=\"_richTextNode\">. But code that runs without errors isn&#8217;t necessarily the result I want.<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">For a geoscience workflow, I mostly care about how the data are represented:<\/span><\/div>\n<ul  style = 'margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 13.3333px; '>\n<li  style = 'margin-left: 53.3333px; line-height: 20px; min-height: 0px; text-align: left; white-space: pre-wrap; '><span class=\"_richTextNode\">the projection<\/span><\/li>\n<li  style = 'margin-left: 53.3333px; line-height: 20px; min-height: 0px; text-align: left; white-space: pre-wrap; '><span class=\"_richTextNode\">appropriate colormaps<\/span><\/li>\n<li  style = 'margin-left: 53.3333px; line-height: 20px; min-height: 0px; text-align: left; white-space: pre-wrap; '><span class=\"_richTextNode\">readable figures<\/span><\/li>\n<li  style = 'margin-left: 53.3333px; line-height: 20px; min-height: 0px; text-align: left; white-space: pre-wrap; '><span class=\"_richTextNode\">whether the result would be suitable for scientific communication, teaching or publication.#<\/span><\/li>\n<\/ul>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">The markdown file is how I bring a (geo)scientist\u2019s requirements into the task. My instructions go beyond \u201cmake the code work, make no mistakes\u201d. In hindsight, I could have split <\/span><span class=\"_richTextNode\" style=' font-family: monospace;'>init.md<\/span><span class=\"_richTextNode\"> in two. The project rules (approach, execution, deliverable) could go in an <\/span><span class=\"_richTextNode\" style=' font-family: monospace;'>AGENTS.md<\/span><span class=\"_richTextNode\"> file, which my Agent reads automatically. The netCDF conventions could become a skill that I can reuse on other datasets, alongside the skills that ship with the MATLAB Agentic Toolkit.<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">The result isn&#8217;t a black box either. Behind the dropdown menus is a plain MATLAB script, written with the functions I chose. I reviewed it before trusting any of the plots, and I can rerun or modify it whenever I need to. When I need a programmatic, reproducible workflow for a publication, the code is already there. <\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">That\u2019s probably the main lesson from my experiment. I still decide what I want to do with the data and what a useful scientific result looks like. The coding Agent is another tool that helps me implement and iterate on those ideas, just faster.<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">So, back to you, dear reader. What workflows are you keen to automate? are there any tools that you can now create to make your science more accessible, reproducible or robust? Let us know in the comments!<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\"><\/span><\/div>\n<h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span class=\"_richTextNode\">To take this further:<\/span><\/h2>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">Learn more about Agentic AI here: [<\/span><a href = \"https:\/\/www.mathworks.com\/campaigns\/offers\/next\/agentic-ai-with-matlab.html\"><span class=\"_richTextNode\">Guide to Agentic AI with MATLAB and Simulink<\/span><\/a><span class=\"_richTextNode\">]<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">Get started with MATLAB Agentic Toolkit: [<\/span><a href = \"https:\/\/www.mathworks.com\/products\/matlab-agentic-toolkit.html\"><span class=\"_richTextNode\">MATLAB Agentic Toolkit<\/span><\/a><span class=\"_richTextNode\">, <\/span><a href = \"https:\/\/www.mathworks.com\/products\/simulink-agentic-toolkit.html\"><span class=\"_richTextNode\">Simulink Agentic Toolkit<\/span><\/a><span class=\"_richTextNode\">]<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\">Get the data here: [<\/span><a href = \"https:\/\/cds.climate.copernicus.eu\/datasets\/reanalysis-oras5?tab=download\"><span class=\"_richTextNode\">ORAS5 global ocean reanalysis monthly data from 1958 to present<\/span><\/a><span class=\"_richTextNode\">]<\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><span class=\"_richTextNode\"><\/span><\/div>\n<div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 13.3333px; font-weight: 400; text-align: left; '><\/div>\n<\/div>\n<p><script type=\"text\/javascript\">var css = '._richTextNode {white-space: break-spaces;}'; var head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); head.appendChild(style); style.type = 'text\/css'; if (style.styleSheet){ style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); }<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"overview-image\"><img src=\"https:\/\/blogs.mathworks.com\/engineering\/files\/2026\/11\/Copernicus_Demo_Blog_4.gif\" class=\"img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" \/><\/div>\n<p>Guest blogger: Kostas Leptokaropoulos<br \/>\nKostas is the MathWorks Geoscience Academic Manager, supporting Geoscience researchers and educators. He is also a visiting lecturer at Aristotle University&#8230; <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/engineering\/2026\/11\/12\/agentic-ai-for-climate-data-in-matlab\/\">read more >><\/a><\/p>\n","protected":false},"author":242,"featured_media":390,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16,20,15,19],"tags":[],"class_list":["post-352","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","category-apps","category-education","category-science"],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/engineering\/wp-json\/wp\/v2\/posts\/352","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/engineering\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/engineering\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/engineering\/wp-json\/wp\/v2\/users\/242"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/engineering\/wp-json\/wp\/v2\/comments?post=352"}],"version-history":[{"count":18,"href":"https:\/\/blogs.mathworks.com\/engineering\/wp-json\/wp\/v2\/posts\/352\/revisions"}],"predecessor-version":[{"id":402,"href":"https:\/\/blogs.mathworks.com\/engineering\/wp-json\/wp\/v2\/posts\/352\/revisions\/402"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/engineering\/wp-json\/wp\/v2\/media\/390"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/engineering\/wp-json\/wp\/v2\/media?parent=352"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/engineering\/wp-json\/wp\/v2\/categories?post=352"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/engineering\/wp-json\/wp\/v2\/tags?post=352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}