{"id":67861,"date":"2015-06-10T09:00:34","date_gmt":"2015-06-10T09:00:34","guid":{"rendered":"http:\/\/www.esri.com\/arcgis-blog\/products\/product\/uncategorized\/accessing-multidimensional-scientific-data-using-python\/"},"modified":"2018-03-26T21:05:40","modified_gmt":"2018-03-26T21:05:40","slug":"accessing-multidimensional-scientific-data-using-python","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python","title":{"rendered":"Accessing Multidimensional Scientific Data using Python"},"author":5141,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[23341,22771],"tags":[26701,22821,24341,23391,26711],"industry":[],"product":[36561],"class_list":["post-67861","blog","type-blog","status-publish","format-standard","hentry","category-analytics","category-natural-resources","tag-climate","tag-oceans-and-maritime","tag-python","tag-spatial-analytics","tag-weather","product-arcgis-pro"],"acf":{"short_description":"&nbsp;\r\n\r\nWith the 10.3 release, a new Python library, netCDF4, began shipping as part of the ArcGIS platform.\u00a0 netCDF4 allows you to easi...","flexible_content":[{"acf_fc_layout":"content","content":"<p>&nbsp;<\/p>\n<p>With the 10.3 release, a new Python library, netCDF4, began shipping as part of the ArcGIS platform.\u00a0 netCDF4 allows you to easily inspect, read, aggregate and write netCDF files.\u00a0 NetCDF (Network Common Data Form) is one of the most important formats for storing and sharing scientific data.<\/p>\n<p><!--more-->The ArcGIS platform has had geoprocessing tools which read and write netCDF data since the 9.x release.\u00a0 However, there may be times when you may want to access or create netCDF data directly using Python.\u00a0 There are four ways of interacting with netCDF files in ArcGIS; geoprocessing tools, the NetCDFFileProperties ArcPy class, the new netCDF Python module, and the multidimensional mosaic dataset.\u00a0 Which method you use depends on what you are trying to accomplish.\u00a0 A summary of different ways of interacting with netCDF files appears in the table below.\u00a0 This blog post will focus on the new netCDF4 Python library.<\/p>\n<p>The netCDF4 library makes it easy for Python developers to read and write netCDF files.\u00a0 For example, this code snippet opens a netCDF file, determines its type, and prints the first data value:<\/p>\n<p>[code language=&#8221;python&#8221;]<br \/>\n&gt;&gt;&gt;import netCDF4\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # the module name is case sensitive<br \/>\n&gt;&gt;&gt;d = netCDF4.Dataset(r&#8217;c:datatemperature.nc&#8217;, &#8216;r&#8217;)<br \/>\n&gt;&gt;&gt; d.data_model<br \/>\n&gt;&gt;&gt;print(d.variables[&#8216;tmin&#8217;][0][0][0])\u00a0\u00a0 # tmin[year][lat][lon]<\/p>\n<p>&#8216;NETCDF3_CLASSIC&#8217;<br \/>\n-23.2861<br \/>\n[\/code]<\/p>\n<p>NetCDF4 stores the data read from a netCDF file in a numPy array.\u00a0 This means you have access to the powerful slicing syntax of numPy arrays.\u00a0 Slicing allows you to extract part of the data by specifying indices.\u00a0 The variable tmin in the example above has three dimensions; year, latitude and longitude.\u00a0 You can specify an index (or a range of indices) to slice the three dimensional data cube into a smaller cube.\u00a0 This code snippet extracts the first five years of data for the variable tmin and prints summary statistics:<\/p>\n<p>[code language=&#8221;python&#8221;]<br \/>\n&gt;&gt;&gt;A = d.variables[&#8216;tmin&#8217;][0:5][:][:]<br \/>\n&gt;&gt;&gt;print(&#8220;Minimum = %.2f, Maximum = %.2f, Mean = %.2f&#8221; % (A.min(), A.max(), A.mean()))<\/p>\n<p>Minimum = -60.77, Maximum = 27.69, Mean = 0.41<br \/>\n[\/code]<\/p>\n<p>Here are some potential uses of the netCDF module:<\/p>\n<ul>\n<li>Build custom geoprocessing tools that process netCDF data (see the <a title=\"Create Space Time Cube\" href=\"http:\/\/desktop.arcgis.com\/en\/desktop\/latest\/tools\/space-time-pattern-mining-toolbox\/create-space-time-cube.htm\">Create Space Time Cube<\/a>\u00a0in the Space-Time Patten Mining toolbox for an example)<\/li>\n<li>Perform advance slicing (sub-setting) of a netCDF file.\u00a0 For example, this statement reads data for every other year for the variable tmin:<br \/>\n[code language=&#8221;python&#8221;]<br \/>\nA = d.variables[&#8216;tmin&#8217;][0::2][:][:]<br \/>\n[\/code]Skipping over data is sometime referred to as specifying a stride.<\/li>\n<li>Read netCDF files which contain groups. The latest netCDF data model, netCDF-4, supports organizing variables, dimension and attribute into hierarchical groups within the file.\u00a0 The Multidimension tools were designed and built based on an earlier version of netCDF data model which didn\u2019t support groups and therefore can only access the first group in the file.<\/li>\n<li>Access scientific data stored on a remote server.\u00a0 The netCDF4 module supports the OPeNDAP protocol.\u00a0 OPeNDAP is widely used in the earth sciences to deliver scientific data.\u00a0 To access data stored on a remote server, you can specify an OPeNDAP URL in place of a filename on the Dataset method.\u00a0 For example, this code will open a dataset on a remote server:<br \/>\n[code language=&#8221;python&#8221;]<br \/>\n&gt;&gt;&gt;d = netCDF4.Dataset(r&#8217;http:\/\/thredds.ucar.edu\/thredds\/dodsC\/grib\/NCEP\/GFS\/Puerto_Rico_0p5deg\/GFS_Puerto_Rico_0p5deg_20150408_1800.grib2\/GC&#8217;, &#8216;r&#8217;)<br \/>\n[\/code]<\/li>\n<\/ul>\n<p>See <a href=\"http:\/\/unidata.github.io\/netcdf4-python\/\">http:\/\/unidata.github.io\/netcdf4-python\/<\/a> for documentation of the netCDF4 module.<\/p>\n<p>** Note: Previously this blog post erroneously reported that the netCDF4 python library began shipping as part of the ArcGIS platform at version 10.2. \u00a0It did not ship with the platform until version 10.3. **<\/p>\n<p>Methods of interacting with netCDF files:<\/p>\n<table class=\"MsoTable15Grid4Accent5\" style=\"border-collapse: collapse; border: none;\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td style=\"width: 130.45pt; border: solid #4472C4 1.0pt; border-right: none; background: #4472C4; padding: 0in 5.4pt 0in 5.4pt;\" valign=\"top\" width=\"217\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt; line-height: normal;\"><strong><span style=\"font-size: 8.0pt; color: white;\">Method<\/span><\/strong><\/p>\n<\/td>\n<td style=\"width: 132.9pt; border-top: solid #4472C4 1.0pt; border-left: none; border-bottom: solid #4472C4 1.0pt; border-right: none; background: #4472C4; padding: 0in 5.4pt 0in 5.4pt;\" valign=\"top\" width=\"222\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt; line-height: normal;\"><strong><span style=\"font-size: 8.0pt; color: white;\">Use<br \/>\nthis method to \u2026<\/span><\/strong><\/p>\n<\/td>\n<td style=\"width: 121.15pt; border-top: solid #4472C4 1.0pt; border-left: none; border-bottom: solid #4472C4 1.0pt; border-right: none; background: #4472C4; padding: 0in 5.4pt 0in 5.4pt;\" valign=\"top\" width=\"202\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt; line-height: normal;\"><strong><span style=\"font-size: 8.0pt; color: white;\">Benefits<br \/>\nand limitations<\/span><\/strong><\/p>\n<\/td>\n<td style=\"width: 83.0pt; border: solid #4472C4 1.0pt; border-left: none; background: #4472C4; padding: 0in 5.4pt 0in 5.4pt;\" valign=\"top\" width=\"138\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt; line-height: normal;\"><strong><span style=\"font-size: 8.0pt; color: white;\">Example<\/span><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 130.45pt; border: solid #8EAADB 1.0pt; border-top: none; background: #D9E2F3; padding: 0in 5.4pt 0in 5.4pt;\" valign=\"top\" width=\"217\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt; line-height: normal;\"><strong><span style=\"font-size: 8.0pt;\">Geoprocessing tools (all of the\u00a0tools located in the Multidimension toolbox)<\/span><\/strong><\/p>\n<\/td>\n<td style=\"width: 132.9pt; border-top: none; border-left: none; border-bottom: solid #8EAADB 1.0pt; border-right: solid #8EAADB 1.0pt; background: #D9E2F3; padding: 0in 5.4pt 0in 5.4pt;\" valign=\"top\" width=\"222\"><span style=\"font-size: 8pt; text-indent: -0.05in;\">~ create a map, table \u00a0or chart from\u00a0<\/span><span style=\"font-size: 8pt; text-indent: -0.05in;\">netCDF data<br \/>\n<\/span><span style=\"font-size: 8.0pt;\">~ chain netCDF data to other tools in\u00a0<\/span><span style=\"font-size: 8pt; text-indent: -0.05in;\">a GIS workflow<br \/>\n<\/span><span style=\"font-size: 8pt;\">~ work with a single slice of the data<\/span><\/td>\n<td style=\"width: 121.15pt; border-top: none; border-left: none; border-bottom: solid #8EAADB 1.0pt; border-right: solid #8EAADB 1.0pt; background: #D9E2F3; padding: 0in 5.4pt 0in 5.4pt;\" valign=\"top\" width=\"202\"><span style=\"font-size: 8pt;\">~ supports reading and writing netCDF\u00a0<\/span><span style=\"font-size: 8pt; text-indent: -0.05in;\">files<br \/>\n<\/span><span style=\"font-family: Symbol;\">~\u00a0<\/span><span style=\"font-size: 8pt;\">easy access through the familiar geoprocessing\u00a0<\/span><span style=\"font-size: 8pt; text-indent: -0.05in;\">tool UI<br \/>\n<\/span><span style=\"font-size: 8.0pt;\"><span style=\"font-family: Symbol;\">~\u00a0<\/span>works with one slice of the data at\u00a0<\/span><span style=\"font-size: 8pt; text-indent: -0.05in;\">a time<\/span><\/td>\n<td style=\"width: 83.0pt; border-top: none; border-left: none; border-bottom: solid #8EAADB 1.0pt; border-right: solid #8EAADB 1.0pt; background: #D9E2F3; padding: 0in 5.4pt 0in 5.4pt;\" valign=\"top\" width=\"138\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt; line-height: normal;\"><span style=\"font-size: 8.0pt;\">Explore spatial patterns in<br \/>\nprecipitation patterns<\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 130.45pt; border: solid #8EAADB 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;\" valign=\"top\" width=\"217\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt; line-height: normal;\"><strong><span style=\"font-size: 8.0pt;\">netCDF4 Python module<\/span><\/strong><\/p>\n<\/td>\n<td style=\"width: 132.9pt; border-top: none; border-left: none; border-bottom: solid #8EAADB 1.0pt; border-right: solid #8EAADB 1.0pt; padding: 0in 5.4pt 0in 5.4pt;\" valign=\"top\" width=\"222\">\n<p class=\"MsoListParagraphCxSpFirst\" style=\"margin: 0in 0in 0.0001pt 0.2in; text-indent: -0.05in; line-height: normal; text-align: left;\"><span style=\"font-size: 8.0pt;\">~ \u00a0access netCDF data directly using Python<\/span><\/p>\n<p class=\"MsoListParagraphCxSpFirst\" style=\"margin: 0in 0in 0.0001pt 0.2in; text-indent: -0.05in; line-height: normal; text-align: left;\"><span style=\"font-size: 8pt; text-indent: -0.05in;\">~ have more control<\/span><span style=\"font-size: 8pt; text-indent: -0.05in;\">\u00a0 <\/span><span style=\"font-size: 8pt; text-indent: -0.05in;\">over the\u00a0structure and contents of a netCDF file<\/span><\/p>\n<\/td>\n<td style=\"width: 121.15pt; border-top: none; border-left: none; border-bottom: solid #8EAADB 1.0pt; border-right: solid #8EAADB 1.0pt; padding: 0in 5.4pt 0in 5.4pt;\" valign=\"top\" width=\"202\">\n<p class=\"MsoListParagraphCxSpMiddle\" style=\"text-indent: -.05in; line-height: normal; margin: 0in 0in .0001pt .2in;\"><span style=\"font-size: 8.0pt;\">~ \u00a0advanced slicing of data<\/span><\/p>\n<p class=\"MsoListParagraphCxSpMiddle\" style=\"text-indent: -.05in; line-height: normal; margin: 0in 0in .0001pt .2in;\"><span style=\"font-size: 8pt; text-indent: -0.05in;\">~ \u00a0easy access to a number of numPy functions<\/span><\/p>\n<\/td>\n<td style=\"width: 83.0pt; border-top: none; border-left: none; border-bottom: solid #8EAADB 1.0pt; border-right: solid #8EAADB 1.0pt; padding: 0in 5.4pt 0in 5.4pt;\" valign=\"top\" width=\"138\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt; line-height: normal;\"><span style=\"font-size: 8.0pt;\">Build a custom geoprocessing tool to combine<br \/>\nseveral netCDF files into a single file<\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 130.45pt; border: solid #8EAADB 1.0pt; border-top: none; background: #D9E2F3; padding: 0in 5.4pt 0in 5.4pt;\" valign=\"top\" width=\"217\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt; line-height: normal;\"><span class=\"SpellE\"><strong><span style=\"font-size: 8.0pt;\">netCDFFileProperties<\/span><\/strong><\/span><strong><span style=\"font-size: 8.0pt;\"> ArcPy Class<\/span><\/strong><\/p>\n<\/td>\n<td style=\"width: 132.9pt; border-top: none; border-left: none; border-bottom: solid #8EAADB 1.0pt; border-right: solid #8EAADB 1.0pt; background: #D9E2F3; padding: 0in 5.4pt 0in 5.4pt;\" valign=\"top\" width=\"222\">\n<p class=\"MsoListParagraphCxSpFirst\" style=\"text-indent: -.05in; line-height: normal; margin: 0in 0in .0001pt .2in;\"><span style=\"font-size: 8.0pt;\">~ explore the structure of a netCDF\u00a0file<\/span><\/p>\n<\/td>\n<td style=\"width: 121.15pt; border-top: none; border-left: none; border-bottom: solid #8EAADB 1.0pt; border-right: solid #8EAADB 1.0pt; background: #D9E2F3; padding: 0in 5.4pt 0in 5.4pt;\" valign=\"top\" width=\"202\">\n<p class=\"MsoListParagraphCxSpMiddle\" style=\"text-indent: -.05in; line-height: normal; margin: 0in 0in .0001pt .2in;\"><span style=\"font-size: 8.0pt;\">~ easy way to access the properties of<br \/>\nvariables and dimensions<\/span><\/p>\n<p class=\"MsoListParagraphCxSpLast\" style=\"text-indent: -.05in; line-height: normal; margin: 0in 0in .0001pt .2in;\"><span style=\"font-size: 8.0pt; font-family: Symbol;\"><span style=\"font: 7.0pt 'Times New Roman';\">~\u00a0<\/span><\/span><span style=\"font-size: 8.0pt;\">no access to the data<\/span><\/p>\n<\/td>\n<td style=\"width: 83.0pt; border-top: none; border-left: none; border-bottom: solid #8EAADB 1.0pt; border-right: solid #8EAADB 1.0pt; background: #D9E2F3; padding: 0in 5.4pt 0in 5.4pt;\" valign=\"top\" width=\"138\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt; line-height: normal;\"><span style=\"font-size: 8.0pt;\">Create an inventory of a large<br \/>\ncollection of netCDF files <\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 130.45pt; border: solid #8EAADB 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;\" valign=\"top\" width=\"217\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt; line-height: normal;\"><strong><span style=\"font-size: 8.0pt;\">Multidimensional mosaic dataset<\/span><\/strong><\/p>\n<\/td>\n<td style=\"width: 132.9pt; border-top: none; border-left: none; border-bottom: solid #8EAADB 1.0pt; border-right: solid #8EAADB 1.0pt; padding: 0in 5.4pt 0in 5.4pt;\" valign=\"top\" width=\"222\">\n<p class=\"MsoListParagraphCxSpFirst\" style=\"text-indent: -.05in; line-height: normal; margin: 0in 0in .0001pt .2in;\"><span style=\"font-size: 8.0pt;\">~ temporally and\/or spatially aggregate a large collection of<br \/>\nnetCDF files<\/span><\/p>\n<p class=\"MsoListParagraphCxSpFirst\" style=\"text-indent: -.05in; line-height: normal; margin: 0in 0in .0001pt .2in;\"><span style=\"font-size: 8.0pt;\">~ perform &#8216;on-the-fly&#8217; analysis<\/span><\/p>\n<p class=\"MsoListParagraphCxSpFirst\" style=\"text-indent: -.05in; line-height: normal; margin: 0in 0in .0001pt .2in;\"><span style=\"font-size: 8.0pt;\">~ serve data as a service<\/span><\/p>\n<\/td>\n<td style=\"width: 121.15pt; border-top: none; border-left: none; border-bottom: solid #8EAADB 1.0pt; border-right: solid #8EAADB 1.0pt; padding: 0in 5.4pt 0in 5.4pt;\" valign=\"top\" width=\"202\">\n<p class=\"MsoListParagraphCxSpMiddle\" style=\"text-indent: -.05in; line-height: normal; margin: 0in 0in .0001pt .2in;\"><span style=\"font-size: 8.0pt;\">~ only works with regularly gridded data<\/span><\/p>\n<p class=\"MsoListParagraphCxSpMiddle\" style=\"text-indent: -.05in; line-height: normal; margin: 0in 0in .0001pt .2in;\"><span style=\"font-size: 8pt; text-indent: -0.05in;\">~ can manage very large collections of files<\/span><\/p>\n<\/td>\n<td style=\"width: 83.0pt; border-top: none; border-left: none; border-bottom: solid #8EAADB 1.0pt; border-right: solid #8EAADB 1.0pt; padding: 0in 5.4pt 0in 5.4pt;\" valign=\"top\" width=\"138\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt; line-height: normal;\"><span style=\"font-size: 8.0pt;\">Aggregate model output from different<br \/>\nregions into one seamless dataset<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n"}],"related_articles":"","card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2015\/06\/MultidimensionalCard.png","wide_image":false,"authors":[{"ID":5141,"user_firstname":"Kevin","user_lastname":"Butler","nickname":"Kevin Butler","user_nicename":"kevi6890","display_name":"Kevin Butler","user_email":"KButler@esri.com","user_url":"","user_registered":"2018-03-02 00:16:49","user_description":"Kevin Butler is a Product Engineer on Esri\u2019s Analysis and Geoprocessing Team working as a liaison to the science community.  He holds a Ph.D. in Geography from Kent State University.  Over the past decade he has worked on strategic projects, partnering with customers and other members of the science community to assist in the development of large ecological information products such as the ecological land units, ecological marine units and ecological coastal units.  His research interests include a thematic focus on spatial statistical analytical workflows, a methodological focus on spatial clustering techniques and a geographic focus on Puerto Rico and midwestern cities.","user_avatar":"<img alt='' src='https:\/\/secure.gravatar.com\/avatar\/871537530afdee476917a9da0f9e9ac26665a4226ea71bee234efba5d2441ab2?s=96&#038;d=blank&#038;r=g' srcset='https:\/\/secure.gravatar.com\/avatar\/871537530afdee476917a9da0f9e9ac26665a4226ea71bee234efba5d2441ab2?s=192&#038;d=blank&#038;r=g 2x' class='avatar avatar-96 photo' height='96' width='96' loading='lazy' decoding='async'\/>"}]},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Accessing Multidimensional Scientific Data using Python<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Accessing Multidimensional Scientific Data using Python\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2018-03-26T21:05:40+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python\"},\"author\":{\"name\":\"Kevin Butler\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/8691ab3666684108f926d34bbb97f082\"},\"headline\":\"Accessing Multidimensional Scientific Data using Python\",\"datePublished\":\"2015-06-10T09:00:34+00:00\",\"dateModified\":\"2018-03-26T21:05:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python\"},\"wordCount\":6,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"Climate\",\"oceans and maritime\",\"python\",\"spatial analytics\",\"Weather\"],\"articleSection\":[\"Analytics\",\"Natural Resources\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python\",\"name\":\"Accessing Multidimensional Scientific Data using Python\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2015-06-10T09:00:34+00:00\",\"dateModified\":\"2018-03-26T21:05:40+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Accessing Multidimensional Scientific Data using Python\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/8691ab3666684108f926d34bbb97f082\",\"name\":\"Kevin Butler\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/871537530afdee476917a9da0f9e9ac26665a4226ea71bee234efba5d2441ab2?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/871537530afdee476917a9da0f9e9ac26665a4226ea71bee234efba5d2441ab2?s=96&d=blank&r=g\",\"caption\":\"Kevin Butler\"},\"description\":\"Kevin Butler is a Product Engineer on Esri\u2019s Analysis and Geoprocessing Team working as a liaison to the science community. He holds a Ph.D. in Geography from Kent State University. Over the past decade he has worked on strategic projects, partnering with customers and other members of the science community to assist in the development of large ecological information products such as the ecological land units, ecological marine units and ecological coastal units. His research interests include a thematic focus on spatial statistical analytical workflows, a methodological focus on spatial clustering techniques and a geographic focus on Puerto Rico and midwestern cities.\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/kevi6890\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Accessing Multidimensional Scientific Data using Python","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python","og_locale":"en_US","og_type":"article","og_title":"Accessing Multidimensional Scientific Data using Python","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2018-03-26T21:05:40+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python"},"author":{"name":"Kevin Butler","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/8691ab3666684108f926d34bbb97f082"},"headline":"Accessing Multidimensional Scientific Data using Python","datePublished":"2015-06-10T09:00:34+00:00","dateModified":"2018-03-26T21:05:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python"},"wordCount":6,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["Climate","oceans and maritime","python","spatial analytics","Weather"],"articleSection":["Analytics","Natural Resources"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python","name":"Accessing Multidimensional Scientific Data using Python","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2015-06-10T09:00:34+00:00","dateModified":"2018-03-26T21:05:40+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/analytics\/accessing-multidimensional-scientific-data-using-python#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Accessing Multidimensional Scientific Data using Python"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/8691ab3666684108f926d34bbb97f082","name":"Kevin Butler","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/871537530afdee476917a9da0f9e9ac26665a4226ea71bee234efba5d2441ab2?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/871537530afdee476917a9da0f9e9ac26665a4226ea71bee234efba5d2441ab2?s=96&d=blank&r=g","caption":"Kevin Butler"},"description":"Kevin Butler is a Product Engineer on Esri\u2019s Analysis and Geoprocessing Team working as a liaison to the science community. He holds a Ph.D. in Geography from Kent State University. Over the past decade he has worked on strategic projects, partnering with customers and other members of the science community to assist in the development of large ecological information products such as the ecological land units, ecological marine units and ecological coastal units. His research interests include a thematic focus on spatial statistical analytical workflows, a methodological focus on spatial clustering techniques and a geographic focus on Puerto Rico and midwestern cities.","url":"https:\/\/www.esri.com\/arcgis-blog\/author\/kevi6890"}]}},"text_date":"June 10, 2015","author_name":"Kevin Butler","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/kevi6890","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/08\/Newsroom-Keyart-Wide-1920-x-1080.jpg","primary_product":"ArcGIS Pro","tag_data":[{"term_id":26701,"name":"Climate","slug":"climate","term_group":0,"term_taxonomy_id":26701,"taxonomy":"post_tag","description":"","parent":0,"count":27,"filter":"raw"},{"term_id":22821,"name":"oceans and maritime","slug":"oceans-and-maritime","term_group":0,"term_taxonomy_id":22821,"taxonomy":"post_tag","description":"","parent":0,"count":102,"filter":"raw"},{"term_id":24341,"name":"python","slug":"python","term_group":0,"term_taxonomy_id":24341,"taxonomy":"post_tag","description":"","parent":0,"count":171,"filter":"raw"},{"term_id":23391,"name":"spatial analytics","slug":"spatial-analytics","term_group":0,"term_taxonomy_id":23391,"taxonomy":"post_tag","description":"","parent":0,"count":345,"filter":"raw"},{"term_id":26711,"name":"Weather","slug":"weather","term_group":0,"term_taxonomy_id":26711,"taxonomy":"post_tag","description":"","parent":0,"count":16,"filter":"raw"}],"category_data":[{"term_id":23341,"name":"Analytics","slug":"analytics","term_group":0,"term_taxonomy_id":23341,"taxonomy":"category","description":"","parent":0,"count":1331,"filter":"raw"},{"term_id":22771,"name":"Natural Resources","slug":"natural-resources","term_group":0,"term_taxonomy_id":22771,"taxonomy":"category","description":"","parent":0,"count":262,"filter":"raw"}],"product_data":[{"term_id":36561,"name":"ArcGIS Pro","slug":"arcgis-pro","term_group":0,"term_taxonomy_id":36561,"taxonomy":"product","description":"","parent":0,"count":2041,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=arcgis-pro","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/67861","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/5141"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=67861"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/67861\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=67861"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=67861"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=67861"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=67861"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=67861"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}