{"id":1001692,"date":"2020-09-09T03:31:15","date_gmt":"2020-09-09T10:31:15","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1001692"},"modified":"2020-09-20T09:52:03","modified_gmt":"2020-09-20T16:52:03","slug":"three-ways-to-prepare-your-data-for-voxel-layer","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer","title":{"rendered":"Three ways to prepare your data for Voxel Layer"},"author":9032,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[23771,23851],"tags":[25781,34261,649691,23391,744242],"industry":[],"product":[36561],"class_list":["post-1001692","blog","type-blog","status-publish","format-standard","hentry","category-3d-gis","category-data-management","tag-3d","tag-netcdf","tag-python-scripts","tag-spatial-analytics","tag-voxel","product-arcgis-pro"],"acf":{"short_description":"Python scripts to manipulate the data to be consumed as a Voxel layer","flexible_content":[{"acf_fc_layout":"content","content":"<p>ArcGIS Pro 2.6 comes with a new Voxel functionality, allowing you to visualize 3D data grids with billions of voxel cubes while leveraging data filtering, symbology control customized for 3D data visualization, time animations and other interactive exploration features. From visualizing climate change modalities, marine ecosystems, geological phenomena to time-series of the digital divide, environmental and social justice metrics &#8211; this format of visualization can help convey critical information, provided the data is right.<\/p>\n<p>&nbsp;<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1013942,"id":1013942,"title":"Relative humidity","filename":"blog.gif","filesize":918890,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/blog.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer\/blog-5","alt":"Voxel visualization of NCEP\/NCAR Reanalysis 1 data for relative humidity at multiple levels, daily averages for 2003","author":"9032","description":"Voxel visualization of NCEP\/NCAR Reanalysis 1 data for relative humidity at multiple levels, daily averages for 2003","caption":"NCEP\/NCAR Reanalysis 1 data for relative humidity at multiple levels, daily averages for 2003","name":"blog-5","status":"inherit","uploaded_to":1001692,"date":"2020-09-20 12:30:52","modified":"2020-09-20 12:32:45","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":600,"height":317,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/blog-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/blog.gif","medium-width":464,"medium-height":245,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/blog.gif","medium_large-width":600,"medium_large-height":317,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/blog.gif","large-width":600,"large-height":317,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/blog.gif","1536x1536-width":600,"1536x1536-height":317,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/blog.gif","2048x2048-width":600,"2048x2048-height":317,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/blog.gif","card_image-width":600,"card_image-height":317,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/blog.gif","wide_image-width":600,"wide_image-height":317}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>Voxel Layer takes a specific type of NetCDF data as its input. The NetCDF format offers a lot of flexibility in terms of data storage. However, this flexibility also makes it the proverbial \u2018wild wild west\u2019 of data formats. The data needs to be compliant to the <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/help\/mapping\/layer-properties\/supported-voxel-formats.htm\">Voxel Layer data requirements<\/a> to visualize it correctly as a voxel volume.<\/p>\n<p>This blog demonstrates the use of Python to edit NetCDF files and make them compatible for voxel visualization. Most of these functionalities are also available in the <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/arcpy\/classes\/raster-object.htm\">raster object<\/a> in ArcGIS Pro. There are additional<a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/tool-reference\/multidimension\/an-overview-of-the-multidimension-toolbox.htm\"> tools for multidimensional data management and analysis<\/a> available in ArcGIS Pro.<\/p>\n<p>We will be using the Jupyter Notebook environment in ArcGIS Pro for the three types of data operations described in this blog. Open ArcGIS Pro, and open a new local scene. In the analysis tab, in the Geoprocessing group, select the Python option. A new Python notebook will open.<\/p>\n<p>We are now ready to look at the three scenarios.<\/p>\n<p style=\"text-align: center\"><strong><em>Combining a time series of netCDF files into a single netCDF<\/em><\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1001722,"id":1001722,"title":"combining netcdf","filename":"combining-netcdf-1.jpg","filesize":76922,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/combining-netcdf-1.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer\/combining-netcdf-2","alt":"combine time into one netcdf voxel","author":"9032","description":"Combine separate NetCDF files into a single file for Voxel visualization in ArcGIS Pro.","caption":"Combine separate NetCDF files into a single file","name":"combining-netcdf-2","status":"inherit","uploaded_to":1001692,"date":"2020-09-09 06:39:43","modified":"2020-09-09 06:40:21","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1064,"height":368,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/combining-netcdf-1-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/combining-netcdf-1.jpg","medium-width":464,"medium-height":160,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/combining-netcdf-1.jpg","medium_large-width":768,"medium_large-height":266,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/combining-netcdf-1.jpg","large-width":1064,"large-height":368,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/combining-netcdf-1.jpg","1536x1536-width":1064,"1536x1536-height":368,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/combining-netcdf-1.jpg","2048x2048-width":1064,"2048x2048-height":368,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/combining-netcdf-1-826x286.jpg","card_image-width":826,"card_image-height":286,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/combining-netcdf-1.jpg","wide_image-width":1064,"wide_image-height":368}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>NetCDF data often come in separate files that span over different time stamps or height stamps, and often you might want to visualize this data as a Voxel layer with all individual time or height information combined into the same file. As an example, this precipitation data downloaded from the<a href=\"https:\/\/psl.noaa.gov\/repository\/entry\/show?entryid=synth%3Ae570c8f9-ec09-4e89-93b4-babd5651e7a9%3AL2NwY191c19ob3VyX3ByZWNpcA%3D%3D&amp;ascending=true&amp;orderby=type&amp;showentryselectform=true\">\u00a0NOAA Physical Science Laboratory Server<\/a> has netCDF files for different years, available to download separately.<\/p>\n<p>So how may we go from disjointed netCDF files to a single netCDF file?<\/p>\n<p>Create a folder with all the data that needs to be combined. Download the data from the PSL website listed above into this folder. I had a folder called \u2018precip\u2019 with the hourly precipitation data mentioned above. As in the screenshot, the data was named in this format \u2014 \u2018precip.hour.yyyy.nc\u2019, yyyy is the year of observation recording.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1001732,"id":1001732,"title":"precipNOAA","filename":"precipNOAA.png","filesize":25574,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/precipNOAA.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer\/precipnoaa","alt":"Data\/image provided by the NOAA ESRL Physical Sciences Laboratory, Boulder, Colorado, USA, from their website at http:\/\/psl.noaa.gov\/","author":"9032","description":"Data\/image provided by the NOAA ESRL Physical Sciences Laboratory, Boulder, Colorado, USA, from their website at http:\/\/psl.noaa.gov\/","caption":"Data\/image provided by the NOAA ESRL Physical Sciences Laboratory, Boulder, Colorado, USA, from their website at http:\/\/psl.noaa.gov\/","name":"precipnoaa","status":"inherit","uploaded_to":1001692,"date":"2020-09-09 06:41:59","modified":"2020-09-09 06:42:32","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":863,"height":1274,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/precipNOAA-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/precipNOAA.png","medium-width":177,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/precipNOAA.png","medium_large-width":768,"medium_large-height":1134,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/precipNOAA.png","large-width":732,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/precipNOAA.png","1536x1536-width":863,"1536x1536-height":1274,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/precipNOAA.png","2048x2048-width":863,"2048x2048-height":1274,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/precipNOAA-315x465.png","card_image-width":315,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/precipNOAA-732x1080.png","wide_image-width":732,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>Now, for the code. First, import the xarray and netCDF4 libraries.<\/p>\n<pre><code>import netCDF4\r\nimport xarray\r\n<\/code><\/pre>\n<p>(Press Shift+Enter to execute the code in the Cell and open a new cell)<\/p>\n<p>First, we need to confirm the name of the time dimension. We can do this by individually importing a single file, and checking its dimensions.<\/p>\n<pre><code>ds_precip = xr.open_dataset(r\"\\\\qalab_server\\vsdata\\v27\\Desktop\\SceneLayers\\data\\NetCDF\\X_Y_T\\precip.hour.1981.nc\")\r\nds_precip<\/code><\/pre>\n"},{"acf_fc_layout":"image","image":{"ID":1001762,"id":1001762,"title":"precip_details","filename":"precip_details.png","filesize":19539,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/precip_details.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer\/precip_details","alt":"Python check netcdf description","author":"9032","description":"precipitation netcdf NOAA","caption":"Details of the precipitation data ","name":"precip_details","status":"inherit","uploaded_to":1001692,"date":"2020-09-09 06:53:00","modified":"2020-09-09 06:53:58","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":961,"height":514,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/precip_details-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/precip_details.png","medium-width":464,"medium-height":248,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/precip_details.png","medium_large-width":768,"medium_large-height":411,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/precip_details.png","large-width":961,"large-height":514,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/precip_details.png","1536x1536-width":961,"1536x1536-height":514,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/precip_details.png","2048x2048-width":961,"2048x2048-height":514,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/precip_details-826x442.png","card_image-width":826,"card_image-height":442,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/precip_details.png","wide_image-width":961,"wide_image-height":514}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>We see in the results window that the time dimension is called \u2018time\u2019; Not all netCDF variables have such obviously relatable names, so it\u2019s always good to check the name of the dimension.<\/p>\n<p>We now need the script to open any netCDF file in my folder that begins with \u2018precip.hour\u2019, the * representing that whatever comes there is a don\u2019t-care string. The way we want to combine the data is using the time coordinate dimension, which is the dimension that defines the relations of the data and order with respect to one another. These different precipitation data are input to the combine method, specifically by stating that we want to combine by the coordinate dimension &#8211; \u2018time\u2019 (combine = \u2018by_coords\u2019 and concat_dim = \u2018time\u2019 respectively). xarray provides more option to concatenate data with more complex needs like merging along two dimensions. For more,\u00a0<a href=\"http:\/\/xarray.pydata.org\/en\/stable\/combining.html#concatenate\">see here<\/a><\/p>\n<p><code>ds_combined = xarray.open_mfdataset('precip.hour.*.nc',combine = 'by_coords', concat_dim=\"time\")<\/code><\/p>\n<p>We can now export this data into a combined netCDF,<\/p>\n<pre><code>ds_combined.to_netcdf('precip_combined.nc')<\/code><\/pre>\n<p>And now we can plot this data as a Voxel or a Spacetime Cube.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center\"><em>Reordering the dimensions in a netCDF data<\/em><\/p>\n<p>CF compliance of NetCDF data does not impose restrictions on the order of the dimensions, so that data you need to visualize the Voxel layer with might not be ordered based on the requirements of the layer. In this situation, while loading netCDF data in the Add Voxel Layer dialogue, you may receive this warning<br \/>\n<em><br \/>\nWarning : The order of the dimensions for variable &#8216;&lt;variable name&gt; &#8216; is not supported. {X,Y,Z,T} or {T,Z,Y,X} order is expected (with z or t optional). Variable will be ignored.<\/em><\/p>\n<p>&nbsp;<\/p>\n<p>This warning applies to latitude and longitude based dimensions as well, where the accepted order of dimensions is either {longitude, latitude, level, time} or {time, level, latitude, longitude}.<\/p>\n<p>For instance if you take the <a href=\"https:\/\/arcg.is\/1q4ua1\">relative humidity data here<\/a>, which is based on the relative humidity data from NCEP\/NCAR Reanalysis 1 data for relative humidity at multiple levels, daily averages for 2003.<\/p>\n<p>When we try to add this data through the Add Multidimensional Voxel dialogue, no variables show up in the dialogue, and we get the same warning as above.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1001772,"id":1001772,"title":"warning_dimensions","filename":"warning_dimensions.png","filesize":39169,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/warning_dimensions.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer\/warning_dimensions","alt":"Voxel dimension warning","author":"9032","description":"Voxel dimension warning","caption":"Warning shown on the 'Add Voxel' dialogue for ordering of dimensions","name":"warning_dimensions","status":"inherit","uploaded_to":1001692,"date":"2020-09-09 06:58:38","modified":"2020-09-09 06:59:35","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":926,"height":532,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/warning_dimensions-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/warning_dimensions.png","medium-width":454,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/warning_dimensions.png","medium_large-width":768,"medium_large-height":441,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/warning_dimensions.png","large-width":926,"large-height":532,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/warning_dimensions.png","1536x1536-width":926,"1536x1536-height":532,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/warning_dimensions.png","2048x2048-width":926,"2048x2048-height":532,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/warning_dimensions-809x465.png","card_image-width":809,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/warning_dimensions.png","wide_image-width":926,"wide_image-height":532}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>We need to transpose the data into the dimensions that the voxel layer accepts. You can use the same Jupyter Notebook opened above. Open the file with xarray.<\/p>\n<pre><code>import netCDF4\r\nimport xarray\r\n\r\nds_rhum = xarray.open_dataset(r\"C:\\Users\\nee10059\\Downloads\\rhum.2003.nc\")<\/code><\/pre>\n<p>We first check the coordinate dimension names by typing the dataset name.<\/p>\n<pre><code>ds_rhum<\/code><\/pre>\n"},{"acf_fc_layout":"image","image":{"ID":1001782,"id":1001782,"title":"dimension_check","filename":"dimension_check.png","filesize":16297,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/dimension_check.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer\/dimension_check","alt":"check netcdf dimensions in arcgis python","author":"9032","description":"check netcdf dimensions in arcgis python","caption":"","name":"dimension_check","status":"inherit","uploaded_to":1001692,"date":"2020-09-09 07:01:25","modified":"2020-09-09 07:01:46","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":887,"height":510,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/dimension_check-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/dimension_check.png","medium-width":454,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/dimension_check.png","medium_large-width":768,"medium_large-height":442,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/dimension_check.png","large-width":887,"large-height":510,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/dimension_check.png","1536x1536-width":887,"1536x1536-height":510,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/dimension_check.png","2048x2048-width":887,"2048x2048-height":510,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/dimension_check-809x465.png","card_image-width":809,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/dimension_check.png","wide_image-width":887,"wide_image-height":510}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>Now we will apply a mathematical array transpose operation to the data to be either ordered as {longitude, latitude, level, time} or {time, level, latitude, longitude}.<\/p>\n<pre><code>ds_ordered = ds_rhum.transpose(\"time\", \"level\", \"lat\", \"lon\")<\/code><\/pre>\n<p>We can export this data into a reordered netcdf rhum_ordered.2003.nc<\/p>\n<pre><code>ds_ordered.to_netcdf(r\"C:\\Users\\nee10059\\Downloads\\rhum_ordered.2003.nc\")<\/code><\/pre>\n<p>We can now add this data to be visualized as a voxel.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1001802,"id":1001802,"title":"Relative Humidity","filename":"rhum.png","filesize":104048,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/rhum.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer\/rhum","alt":"NCEP\/NCAR Reanalysis 1 data for relative humidity at multiple levels, daily averages for 2003","author":"9032","description":"NCEP\/NCAR Reanalysis 1 data for relative humidity at multiple levels, daily averages for 2003","caption":"NCEP\/NCAR Reanalysis 1 data for relative humidity at multiple levels, daily averages for 2003","name":"rhum","status":"inherit","uploaded_to":1001692,"date":"2020-09-09 07:18:43","modified":"2020-09-09 07:19:12","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1039,"height":483,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/rhum-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/rhum.png","medium-width":464,"medium-height":216,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/rhum.png","medium_large-width":768,"medium_large-height":357,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/rhum.png","large-width":1039,"large-height":483,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/rhum.png","1536x1536-width":1039,"1536x1536-height":483,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/rhum.png","2048x2048-width":1039,"2048x2048-height":483,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/rhum-826x384.png","card_image-width":826,"card_image-height":384,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/rhum.png","wide_image-width":1039,"wide_image-height":483}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p style=\"text-align: center\"><em>Three ways to correct the direction of the height axis<\/em><\/p>\n<p>NetCDF data may be misaligned along a particular dimension \u2013 x,y,z or t. In this case, we want to reverse (or un-reverse if you will) just the data along that axis while maintaining the structure along the others. The height dimension is the most susceptible of being stored in this reversed manner, but also commonly we might want to reverse the time dimension so that the spacetime cube voxel has the oldest timestamp as the topmost plane.<\/p>\n<p>&nbsp;<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1001852,"id":1001852,"title":"table_1","filename":"table_1.jpg","filesize":54651,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/table_1.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer\/table_1","alt":"Table 1 : Types of height alignments for a single NetCDF Data Source: \u2018Contains modified Copernicus Atmosphere Monitoring Service information [2020]","author":"9032","description":"Table 1 : Types of height alignments for a single NetCDF\nData Source: \u2018Contains modified Copernicus Atmosphere Monitoring Service information [2020]","caption":"Table 1 : Types of height alignments for a single NetCDF\nData Source: \u2018Contains modified Copernicus Atmosphere Monitoring Service information [2020]","name":"table_1","status":"inherit","uploaded_to":1001692,"date":"2020-09-09 09:01:07","modified":"2020-09-09 09:01:34","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1021,"height":564,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/table_1-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/table_1.jpg","medium-width":464,"medium-height":256,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/table_1.jpg","medium_large-width":768,"medium_large-height":424,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/table_1.jpg","large-width":1021,"large-height":564,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/table_1.jpg","1536x1536-width":1021,"1536x1536-height":564,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/table_1.jpg","2048x2048-width":1021,"2048x2048-height":564,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/table_1-826x456.jpg","card_image-width":826,"card_image-height":456,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/table_1.jpg","wide_image-width":1021,"wide_image-height":564}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>There are four cases in which the data may be aligned as shown in the figure. Consequently there are 24 permutations in which we might want to correct the direction of the alignment.<br \/>\nThe data might be on the opposite side of the ground, and needs flipping (position (1) to position (4) above), or offsetting (position (1) to position (3)). Alternatively, the data might need to be reversed in direction while occupying the same geographical area\u00a0 as before (position (position(1) to position (2)).<\/p>\n<p>(<em>Quick tip<\/em>: If you do not want to manipulate the netCDF data itself and only the visualization, the voxel volume could be inverted through drawing manipulation. To do this, you can set a negative value in the \u2018Vertical Exaggeration\u2019 field in the Elevation group of the Appearance ribbon. Then use the offset field to position the volume above\/below the earth surface.)<\/p>\n<p>Let\u2019s look at the Carbon monoxide reanalysis data from Copernicus Atmosphere Monitoring Service (CAMS) as Voxel volume, which was used in the figure above. The legend shows that the upper atmosphere has higher values of carbon monoxide, which reduce near the ground. An atmospheric expert would quickly understand that while the voxel volume is correctly placed geographically, the data is inverted.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1001862,"id":1001862,"title":"CAMS_1","filename":"CAMS_1.gif","filesize":794036,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/CAMS_1.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer\/cams_1","alt":"carbon monoxide voxel netcdf","author":"9032","description":"carbon monoxide voxel netcdf","caption":"Data: \u2018Contains modified Copernicus Atmosphere Monitoring Service information [2020]","name":"cams_1","status":"inherit","uploaded_to":1001692,"date":"2020-09-09 09:07:59","modified":"2020-09-09 09:16:10","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1087,"height":601,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/CAMS_1-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/CAMS_1.gif","medium-width":464,"medium-height":257,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/CAMS_1.gif","medium_large-width":768,"medium_large-height":425,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/CAMS_1.gif","large-width":1087,"large-height":601,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/CAMS_1.gif","1536x1536-width":1087,"1536x1536-height":601,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/CAMS_1.gif","2048x2048-width":1087,"2048x2048-height":601,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/CAMS_1-826x457.gif","card_image-width":826,"card_image-height":457,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/CAMS_1.gif","wide_image-width":1087,"wide_image-height":601}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>We have to transform the data from position (1) to position (2) shown in Table 1.<\/p>\n<p>We can use the same Jupyter notebook opened above in the ArcGIS Pro interface, import the necessary libraries and the data we will be working with.<\/p>\n<pre><code>import netCDF4\r\nimport xarray\r\nds_cams = xarray.open_dataset(r\"C:\\Users\\nee10059\\Downloads\\Carbon_Monoxide_CAMS.nc\")<\/code><\/pre>\n<p>We then find out the name of the height dimension, by typing the dataset name<\/p>\n<pre><code>\r\nds_cams\r\n<\/code><\/pre>\n"},{"acf_fc_layout":"image","image":{"ID":1001882,"id":1001882,"title":"ds_cams","filename":"ds_cams.png","filesize":19612,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/ds_cams.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer\/ds_cams","alt":"netcdf voxel","author":"9032","description":"netcdf voxel CAMs copernicus","caption":"Description of the data","name":"ds_cams","status":"inherit","uploaded_to":1001692,"date":"2020-09-09 09:22:19","modified":"2020-09-09 09:23:06","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":845,"height":455,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/ds_cams-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/ds_cams.png","medium-width":464,"medium-height":250,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/ds_cams.png","medium_large-width":768,"medium_large-height":414,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/ds_cams.png","large-width":845,"large-height":455,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/ds_cams.png","1536x1536-width":845,"1536x1536-height":455,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/ds_cams.png","2048x2048-width":845,"2048x2048-height":455,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/ds_cams-826x445.png","card_image-width":826,"card_image-height":445,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/ds_cams.png","wide_image-width":845,"wide_image-height":455}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>The height dimension is called \u2018level\u2019. We can find out more attributes on the height dimension by clicking<\/p>\n<pre><code>ds_cams.level<\/code><\/pre>\n"},{"acf_fc_layout":"image","image":{"ID":1001892,"id":1001892,"title":"ds_cams_level","filename":"ds_cams_level.png","filesize":6433,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/ds_cams_level.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer\/ds_cams_level","alt":"level dimension netcdf","author":"9032","description":"level dimension netcdf","caption":"'level' dimension in the NetCDF data","name":"ds_cams_level","status":"inherit","uploaded_to":1001692,"date":"2020-09-09 09:24:45","modified":"2020-09-09 09:25:50","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":897,"height":256,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/ds_cams_level-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/ds_cams_level.png","medium-width":464,"medium-height":132,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/ds_cams_level.png","medium_large-width":768,"medium_large-height":219,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/ds_cams_level.png","large-width":897,"large-height":256,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/ds_cams_level.png","1536x1536-width":897,"1536x1536-height":256,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/ds_cams_level.png","2048x2048-width":897,"2048x2048-height":256,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/ds_cams_level-826x236.png","card_image-width":826,"card_image-height":236,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/ds_cams_level.png","wide_image-width":897,"wide_image-height":256}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>The level dimension is ordered from 1 to 60, with a long name attribute of \u2018model_level_number\u2019.<\/p>\n<p>From here, there are three steps to invert the netCDF data<\/p>\n<ol>\n<li style=\"list-style-type: none\">\n<ol>\n<li>Reverse the data direction\n<pre><code>dnew = ds.reindex(level = list(reversed(ds.level)))<\/code><\/pre>\n<p>This logic \u2018reindexes\u2019 or flips the data by reading it from a list created by reversing the \u2018level\u2019, and stores it in a new dataset dnew. dnew contains the reversed data but the level misaligned, i.e. level 1 (ground) now contains level 60\u2019s information.<\/li>\n<li>Rename the \u2018level\u2019 numbering to align with the original netcdf array\n<pre><code>dnew = dnew.assign_coords(level = ds.level)<\/code><\/pre>\n<\/li>\n<li>Supply attribute information.<br \/>\nThe data has only one attribute &#8211; long_name. Since netCDF is a self-describing format, any program that works with this data is heavily dependant on the attribute information that is available with each variable and dimension. We need to append extra attributes to this netCDF \u2018level\u2019 dimension to clarify its context. Specifically, we need to add that the positive axis is up (since the levels are going from low to high as we go up in value). But it is also a good practice to add other descriptive attributes like &#8211;<br \/>\n(a) \u201cstandard_name\u201d attribute, because it is standardized across the CF convention. It clearly identifies the physical quantity of a variable. <a href=\"https:\/\/cfconventions.org\/Data\/cf-standard-names\/74\/build\/cf-standard-name-table.html\">A standard name lookup table is available here.<\/a><br \/>\nOn searching for \u201cmodel_level_number\u201d returns the corresponding standard name, and so we will add it as an attribute as well.<br \/>\n(b) \u201caxis\u201d, because it clarifies that the level dimension is along the \u201cz axis\u201d<br \/>\n(c)\u201cunits\u201d &#8211; In this case, the unit is not known, but it is good practice to add the \u201cunits\u201d attribute if it is known.<\/p>\n<pre><code>dnew.level.attrs['positive'] = \"up\"\r\ndnew.level.attrs['standard_name'] = \"model_level_number\"\r\ndnew.level.attrs['axis'] = \"Z\"<\/code><\/pre>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>Finally, we export the dataset to a new netCDF<\/p>\n<pre><code>dnew.to_netcdf(r\"C:\\Users\\nee10059\\Documents\\CAMS_reversed.nc\")<\/code><\/pre>\n<p>A combination of the above scripts can be used to accomplish any permutation described in Table 1.<\/p>\n<p>&nbsp;<\/p>\n<p>In conclusion, you can use Python to transform your data in a Voxel-compatible format, by combining individual time-stamped files into a single data source, changing the data dimensions, or correcting for the altitude orientation. There are permutations of the techniques above that may apply to your data, and hopefully the voxel visualization lends itself to discovering new critical perspectives on your information.<\/p>\n"}],"authors":[{"ID":9032,"user_firstname":"Neeti","user_lastname":"Nayak","nickname":"nnayak","user_nicename":"nnayak","display_name":"Neeti Nayak","user_email":"nnayak@esri.com","user_url":"http:\/\/www.neetinayak.com","user_registered":"2019-02-27 22:39:59","user_description":"Neeti is a Designer and Engineer working at the Environmental Systems Research Institute. She has a dual portfolio of work at ESRI - developing software products for three-dimensional GIS data including Revit and multidimensional data, and directing the solutions initiative for GIS for Equality and Social Justice. She has a degree in Masters in Design Engineering, both from Harvard Graduate School of Design as well as the Harvard John A. Paulson School Of Engineering And Applied Sciences. Her past experience has been in subjects of urban informality, craft forms in India, politics of technology and design, performing arts and missile systems engineering.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/IMG_9314-213x200.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"related_articles":[{"ID":67861,"post_author":"5141","post_date":"2015-06-10 09:00:34","post_date_gmt":"2015-06-10 09:00:34","post_content":"","post_title":"Accessing Multidimensional Scientific Data using Python","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"accessing-multidimensional-scientific-data-using-python","to_ping":"","pinged":"","post_modified":"2018-03-26 21:05:40","post_modified_gmt":"2018-03-26 21:05:40","post_content_filtered":"","post_parent":0,"guid":"http:\/\/www.esri.com\/arcgis-blog\/products\/product\/uncategorized\/accessing-multidimensional-scientific-data-using-python\/","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":799071,"post_author":"9412","post_date":"2020-04-22 06:20:18","post_date_gmt":"2020-04-22 13:20:18","post_content":"","post_title":"Creating NetCDF files for Analysis and Visualization in ArcGIS","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"creating-netcdf-files-for-analysis-and-visualization-in-arcgis","to_ping":"","pinged":"","post_modified":"2022-03-28 07:08:04","post_modified_gmt":"2022-03-28 14:08:04","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=799071","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"7","filter":"raw"},{"ID":855951,"post_author":"8222","post_date":"2020-07-28 08:25:41","post_date_gmt":"2020-07-28 15:25:41","post_content":"","post_title":"Let's do data science III: Multidimensional Raster Analysis in ArcGIS Pro","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"multidimensional-raster-analysis-in-arcgis-pro-2-6","to_ping":"","pinged":"","post_modified":"2022-04-18 17:26:38","post_modified_gmt":"2022-04-19 00:26:38","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=855951","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":122811,"post_author":"5141","post_date":"2012-04-27 18:07:26","post_date_gmt":"2012-04-27 18:07:26","post_content":"","post_title":"Including netCDF Dimension Values in the Name of an Output Layer or Table","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"including-netcdf-dimension-values-in-the-name-of-an-output-layer-or-table","to_ping":"","pinged":"","post_modified":"2012-04-27 18:07:26","post_modified_gmt":"2012-04-27 18:07:26","post_content_filtered":"","post_parent":0,"guid":"http:\/\/www.esri.com\/arcgis-blog\/products\/product\/uncategorized\/including-netcdf-dimension-values-in-the-name-of-an-output-layer-or-table\/","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"card_image":false,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/aaron-burden-GFpxQ2ZyNc0-unsplash-2.jpg"},"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>Three ways to prepare your data for Voxel Layer<\/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\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Three ways to prepare your data for Voxel Layer\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer\" \/>\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=\"2020-09-20T16:52:03+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\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer\"},\"author\":{\"name\":\"Neeti Nayak\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/c454a4dd2394f25cd3cf3aef60ca3cbf\"},\"headline\":\"Three ways to prepare your data for Voxel Layer\",\"datePublished\":\"2020-09-09T10:31:15+00:00\",\"dateModified\":\"2020-09-20T16:52:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer\"},\"wordCount\":9,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"3D\",\"netCDF\",\"python scripts\",\"spatial analytics\",\"Voxel\"],\"articleSection\":[\"3D Visualization &amp; Analytics\",\"Data Management\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer\",\"name\":\"Three ways to prepare your data for Voxel Layer\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2020-09-09T10:31:15+00:00\",\"dateModified\":\"2020-09-20T16:52:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Three ways to prepare your data for Voxel Layer\"}]},{\"@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\/c454a4dd2394f25cd3cf3aef60ca3cbf\",\"name\":\"Neeti Nayak\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/IMG_9314-213x200.jpg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/IMG_9314-213x200.jpg\",\"caption\":\"Neeti Nayak\"},\"description\":\"Neeti is a Designer and Engineer working at the Environmental Systems Research Institute. She has a dual portfolio of work at ESRI - developing software products for three-dimensional GIS data including Revit and multidimensional data, and directing the solutions initiative for GIS for Equality and Social Justice. She has a degree in Masters in Design Engineering, both from Harvard Graduate School of Design as well as the Harvard John A. Paulson School Of Engineering And Applied Sciences. Her past experience has been in subjects of urban informality, craft forms in India, politics of technology and design, performing arts and missile systems engineering.\",\"sameAs\":[\"http:\/\/www.neetinayak.com\",\"https:\/\/www.linkedin.com\/in\/neeti-nayak\/\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/nnayak\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Three ways to prepare your data for Voxel Layer","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\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer","og_locale":"en_US","og_type":"article","og_title":"Three ways to prepare your data for Voxel Layer","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2020-09-20T16:52:03+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\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer"},"author":{"name":"Neeti Nayak","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/c454a4dd2394f25cd3cf3aef60ca3cbf"},"headline":"Three ways to prepare your data for Voxel Layer","datePublished":"2020-09-09T10:31:15+00:00","dateModified":"2020-09-20T16:52:03+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer"},"wordCount":9,"commentCount":2,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["3D","netCDF","python scripts","spatial analytics","Voxel"],"articleSection":["3D Visualization &amp; Analytics","Data Management"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer","name":"Three ways to prepare your data for Voxel Layer","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2020-09-09T10:31:15+00:00","dateModified":"2020-09-20T16:52:03+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-pro\/3d-gis\/three-ways-to-prepare-your-data-for-voxel-layer#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Three ways to prepare your data for Voxel Layer"}]},{"@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\/c454a4dd2394f25cd3cf3aef60ca3cbf","name":"Neeti Nayak","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/IMG_9314-213x200.jpg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/IMG_9314-213x200.jpg","caption":"Neeti Nayak"},"description":"Neeti is a Designer and Engineer working at the Environmental Systems Research Institute. She has a dual portfolio of work at ESRI - developing software products for three-dimensional GIS data including Revit and multidimensional data, and directing the solutions initiative for GIS for Equality and Social Justice. She has a degree in Masters in Design Engineering, both from Harvard Graduate School of Design as well as the Harvard John A. Paulson School Of Engineering And Applied Sciences. Her past experience has been in subjects of urban informality, craft forms in India, politics of technology and design, performing arts and missile systems engineering.","sameAs":["http:\/\/www.neetinayak.com","https:\/\/www.linkedin.com\/in\/neeti-nayak\/"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/nnayak"}]}},"text_date":"September 9, 2020","author_name":"Neeti Nayak","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/nnayak","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/09\/aaron-burden-GFpxQ2ZyNc0-unsplash-2.jpg","primary_product":"ArcGIS Pro","tag_data":[{"term_id":25781,"name":"3D","slug":"3d","term_group":0,"term_taxonomy_id":25781,"taxonomy":"post_tag","description":"","parent":0,"count":342,"filter":"raw"},{"term_id":34261,"name":"netCDF","slug":"netcdf","term_group":0,"term_taxonomy_id":34261,"taxonomy":"post_tag","description":"","parent":0,"count":11,"filter":"raw"},{"term_id":649691,"name":"python scripts","slug":"python-scripts","term_group":0,"term_taxonomy_id":649691,"taxonomy":"post_tag","description":"","parent":0,"count":6,"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":344,"filter":"raw"},{"term_id":744242,"name":"Voxel","slug":"voxel","term_group":0,"term_taxonomy_id":744242,"taxonomy":"post_tag","description":"","parent":0,"count":6,"filter":"raw"}],"category_data":[{"term_id":23771,"name":"3D Visualization &amp; Analytics","slug":"3d-gis","term_group":0,"term_taxonomy_id":23771,"taxonomy":"category","description":"","parent":0,"count":686,"filter":"raw"},{"term_id":23851,"name":"Data Management","slug":"data-management","term_group":0,"term_taxonomy_id":23851,"taxonomy":"category","description":"","parent":0,"count":920,"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":2035,"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\/1001692","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\/9032"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=1001692"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1001692\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=1001692"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=1001692"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=1001692"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=1001692"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=1001692"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}