{"id":1745542,"date":"2022-11-10T09:53:33","date_gmt":"2022-11-10T17:53:33","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1745542"},"modified":"2023-12-12T00:12:42","modified_gmt":"2023-12-12T08:12:42","slug":"voxel-layers-web","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web","title":{"rendered":"Voxel layers &#8211; exploring world atmospheric temperature and pressure with ArcGIS API for JavaScript"},"author":7011,"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],"tags":[25781,24921,767652,438852,757951],"industry":[],"product":[36831,36601],"class_list":["post-1745542","blog","type-blog","status-publish","format-standard","hentry","category-3d-gis","tag-3d","tag-javascript","tag-pressure","tag-temperature","tag-voxel-layer","product-js-api-arcgis","product-developers"],"acf":{"authors":[{"ID":7011,"user_firstname":"Raluca","user_lastname":"Nicola","nickname":"Raluca Nicola","user_nicename":"raluca_zurich","display_name":"Raluca Nicola","user_email":"RNicola@esri.com","user_url":"https:\/\/raluca-nicola.net\/","user_registered":"2018-03-02 00:19:07","user_description":"Raluca works as a web cartographer with the Geo Experience Center team at Esri. She loves to play around with web technologies and visualization styles. If she's not in front of the computer, she's probably somewhere up in the mountains.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/7VkWXsZ3_400x400.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"short_description":"Using ArcGIS API for JavaScript to explore multidimensional datasets in a web application","flexible_content":[{"acf_fc_layout":"content","content":"<div>\n<div>Multidimensional datasets are complex and hard to understand without good visualization tools. In this blog post we&#8217;ll explore a dataset representing atmospheric temperature and pressure measurements using ArcGIS API for JavaScript.<\/div>\n<\/div>\n<div>\n<div>\n<div>\n<div><\/div>\n<\/div>\n<\/div>\n<\/div>\n"},{"acf_fc_layout":"image","image":{"ID":1748422,"id":1748422,"title":"screenshot","filename":"screenshot-scaled.png","filesize":1400780,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/screenshot-scaled.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web\/screenshot-24","alt":"","author":"7011","description":"","caption":"View live application","name":"screenshot-24","status":"inherit","uploaded_to":1745542,"date":"2022-10-27 11:44:15","modified":"2022-10-27 12:05:45","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":2560,"height":1431,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/screenshot-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/screenshot-scaled.png","medium-width":464,"medium-height":259,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/screenshot-scaled.png","medium_large-width":768,"medium_large-height":429,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/screenshot-scaled.png","large-width":1920,"large-height":1073,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/screenshot-1536x858.png","1536x1536-width":1536,"1536x1536-height":858,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/screenshot-2048x1145.png","2048x2048-width":2048,"2048x2048-height":1145,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/screenshot-826x462.png","card_image-width":826,"card_image-height":462,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/screenshot-1920x1073.png","wide_image-width":1920,"wide_image-height":1073}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/geoxc-apps4.bd.esri.com\/atmospheric-measurements\/"},{"acf_fc_layout":"content","content":"<div>\n<p>First of all, some definitions: <strong>atmospheric pressure<\/strong> is the force exerted on a surface by the air above as gravity pulls it to the Earth. The <strong>temperature<\/strong> at different levels of the Earth&#8217;s atmosphere is influenced by incoming solar radiation, humidity and of course by the altitude.<\/p>\n<h3>How can we measure temperature and pressure at such high altitudes?<\/h3>\n<div>The technique involves a low earth orbit satellite receiving a signal from a GPS satellite. When it passes through the atmosphere, the signal is refracted along the way similar to how light refracts when it passes through a lens. The magnitude of the refraction depends on the temperature, air pressure and humidity. This technique is called <a href=\"https:\/\/geooptics.com\/data\/radio-occultation\/\" target=\"_blank\" rel=\"noopener\">radio occultation<\/a> and it produces highly accurate atmospheric measurements which are used in weather forecasting systems.<\/div>\n<p>The dataset is provided by <a href=\"https:\/\/geooptics.com\/\" target=\"_blank\" rel=\"noopener\">GeoOptics<\/a>, a company which specializes in radio occultations for weather forecasts. Each occultation event lasts less than a minute and produces a linear profile of between 350 and 400 observations from the top of the atmosphere to the bottom. The data are acquired from the altitude of 30km down to the ground level. The initial dataset contains<br \/>\naround 600 occultation profiles that we then use to interpolate the measurements into a 3D surface. The geostatistical interpolation method is called <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/tool-reference\/geostatistical-analyst\/empirical-bayesian-kriging-3d.htm\" target=\"_blank\" rel=\"noopener\">Empirical Bayesian Kriging 3D<\/a>. Using <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/tool-reference\/geostatistical-analyst\/ga-layer-3d-to-netcdf.htm\" target=\"_blank\" rel=\"noopener\">GA Layer 3D to netCDF<\/a>, we exported the 3D surface to a netCDF file that can then be viewed as a voxel layer.<\/p>\n<\/div>\n"},{"acf_fc_layout":"image","image":{"ID":1760222,"id":1760222,"title":"data-processing7","filename":"data-processing7-1.png","filesize":39587,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/data-processing7-1.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web\/data-processing7-2","alt":"","author":"7011","description":"","caption":"","name":"data-processing7-2","status":"inherit","uploaded_to":1745542,"date":"2022-11-04 19:03:08","modified":"2022-11-04 19:03:08","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":827,"height":463,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/data-processing7-1-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/data-processing7-1.png","medium-width":464,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/data-processing7-1.png","medium_large-width":768,"medium_large-height":430,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/data-processing7-1.png","large-width":827,"large-height":463,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/data-processing7-1.png","1536x1536-width":827,"1536x1536-height":463,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/data-processing7-1.png","2048x2048-width":827,"2048x2048-height":463,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/data-processing7-1.png","card_image-width":826,"card_image-height":462,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/data-processing7-1.png","wide_image-width":827,"wide_image-height":463}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<div>\n<p>A <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/2.8\/help\/mapping\/layer-properties\/what-is-a-voxel-layer-.htm\" target=\"_blank\" rel=\"noopener\">voxel layer<\/a> is a representation of multidimensional spatial and temporal information in a 3D volumetric visualization. In the Esri world this is a type of layer and we can publish it to ArcGIS Online and visualize in a browser. You can have a look at the voxel layer item <a href=\"https:\/\/www.arcgis.com\/home\/item.html?id=aebb6c67172e4e1386887efe88fc687a\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h2>Exploring the voxel layer with ArcGIS API for JavaScript<\/h2>\n<h3>Variables<\/h3>\n<div>\n<div>Our voxel layer stores the spatial coordinates x, y and z and values for pressure and temperature variables over three days.<\/div>\n<\/div>\n<\/div>\n"},{"acf_fc_layout":"image","image":{"ID":1748402,"id":1748402,"title":"variables","filename":"variables.png","filesize":37410,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/variables.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web\/variables-3","alt":"","author":"7011","description":"","caption":"","name":"variables-3","status":"inherit","uploaded_to":1745542,"date":"2022-10-27 11:39:27","modified":"2022-10-27 11:39:27","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":848,"height":258,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/variables-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/variables.png","medium-width":464,"medium-height":141,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/variables.png","medium_large-width":768,"medium_large-height":234,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/variables.png","large-width":848,"large-height":258,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/variables.png","1536x1536-width":848,"1536x1536-height":258,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/variables.png","2048x2048-width":848,"2048x2048-height":258,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/variables-826x251.png","card_image-width":826,"card_image-height":251,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/variables.png","wide_image-width":848,"wide_image-height":258}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p class=\"code-line\" dir=\"auto\" data-line=\"29\">Within the ArcGIS API for JavaScript we can view information about variables by accessing the array <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-VoxelLayer.html#variables\" target=\"_blank\" rel=\"noopener\">voxelLayer.variables<\/a>.<\/p>\n<p class=\"code-line\" dir=\"auto\" data-line=\"31\">For example the temperature variable has this metadata:<\/p>\n<pre><code style=\"padding: 0.5em;color: #333;background: #f8f8f8\">{\r\n  <span style=\"color: #d14\">description<\/span>: <span style=\"color: #d14\">\"temperature_Prediction\"<\/span>,\r\n  <span style=\"color: #d14\">id<\/span>: <span style=\"color: #008080\">10<\/span>,\r\n  <span style=\"color: #d14\">name<\/span>: <span style=\"color: #d14\">\"temperature\"<\/span>,\r\n  <span style=\"color: #d14\">unit<\/span>: <span style=\"color: #d14\">\"degree_K\"<\/span>\r\n}\r\n<\/code><\/pre>\n<p>We can visualize temperature by setting the current variable id on the layer:<\/p>\n<pre><code style=\"padding: 0.5em;color: #333;background: #f8f8f8\">voxelLayer.currentVariableId = <span style=\"color: #008080\">10<\/span>;\r\n<\/code><\/pre>\n<p>To change the time variable we set the time extent on <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-views-SceneView.html#timeExtent\" target=\"_blank\" rel=\"noopener\">view.timeExtent<\/a>.<\/p>\n<p>When we visualize them, we can compare the pressure and the temperature and we can see how pressure changes almost linearly with altitude, whereas temperature fluctuates much more because it doesn&#8217;t only depend on altitude, but also on solar radiation and humidity.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1748502,"id":1748502,"title":"comparison-temperature-pressure","filename":"comparison-temperature-pressure.png","filesize":44416,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/comparison-temperature-pressure.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web\/comparison-temperature-pressure","alt":"","author":"7011","description":"","caption":"","name":"comparison-temperature-pressure","status":"inherit","uploaded_to":1745542,"date":"2022-10-27 12:26:13","modified":"2022-10-27 12:26:13","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":1008,"height":287,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/comparison-temperature-pressure-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/comparison-temperature-pressure.png","medium-width":464,"medium-height":132,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/comparison-temperature-pressure.png","medium_large-width":768,"medium_large-height":219,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/comparison-temperature-pressure.png","large-width":1008,"large-height":287,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/comparison-temperature-pressure.png","1536x1536-width":1008,"1536x1536-height":287,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/comparison-temperature-pressure.png","2048x2048-width":1008,"2048x2048-height":287,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/comparison-temperature-pressure-826x235.png","card_image-width":826,"card_image-height":235,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/comparison-temperature-pressure.png","wide_image-width":1008,"wide_image-height":287}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<div>\n<h2>Rendering<\/h2>\n<div>A voxel layer can be rendered as a volume or as surfaces. To switch between the two we can set the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-VoxelLayer.html#renderMode\" target=\"_blank\" rel=\"noopener\">voxelLayer.renderMode<\/a> property to either <code>volume<\/code>\u00a0or <code>surfaces<\/code>.<\/div>\n<div>Depending on whether the variable is continuous or discrete, we can render it using stretch symbology or unique values. Each variable has its own symbology saved in <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-VoxelLayer.html#variableStyles\" target=\"_blank\" rel=\"noopener\">voxelLayer.variableStyles<\/a>. In our case we only have continuous values for temperature and pressure and we render them using the stretch symbology. <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-voxel-VoxelVariableStyle.html#transferFunction\" target=\"_blank\" rel=\"noopener\">variableStyle.transferFunction<\/a> defines how the values are stretched between a minimum and maximum value that is associated with a color scheme. In case a variable has discrete values, the unique values are defined in <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-voxel-VoxelVariableStyle.html#uniqueValues\" target=\"_blank\" rel=\"noopener\">variableStyle.uniqueValues<\/a>.<\/div>\n<h2><\/h2>\n<h2>Isosurfaces<\/h2>\n<div>\n<div>If the variable is continuous we can create isosurfaces: surfaces with the same variable value. In a voxel layer we can visualize up to 4 isosurfaces at the same time.<\/div>\n<div>Isosurfaces are stored as part of the variable styles. For example, to get the isosurfaces for a selected variable we can call: <code>voxelLayer.getVariableStyles(variableId).isosurfaces<\/code>.<\/div>\n<div><\/div>\n<div>In our demo application I am generating surfaces dynamically, to be able to explore the whole dataset. How does that work? When I switch to a new variable, I get the information about the range of values for that variable and connect that range to a slider. As the user moves the slider, I create a single surface with the value of that slider:<\/div>\n<\/div>\n<\/div>\n"},{"acf_fc_layout":"content","content":"<div>\n<p>&nbsp;<\/p>\n<pre><code style=\"padding: 0.5em;color: #333;background: #f8f8f8\"><span style=\"color: #333;font-weight: bold\">const<\/span> createIsosurface = value =&gt; {\r\n  <span style=\"color: #333;font-weight: bold\">const<\/span> style = layer.getVariableStyles(selectedVariable.id);\r\n  <span style=\"color: #333;font-weight: bold\">const<\/span> color = layer.getColorForContinuousDataValue(selectedVariable.id, value, <span style=\"color: #333;font-weight: 500\">false<\/span>);\r\n  <span style=\"color: #333;font-weight: bold\">if<\/span> (style) {\r\n    style.isosurfaces = [\r\n      {\r\n        value: value,\r\n        enabled: <span style=\"color: #333;font-weight: 500\">true<\/span>,\r\n        color: {...color, a: <span style=\"color: #008080\">0.8<\/span>},\r\n        <span style=\"color: #998;font-style: italic\">\/\/ if the color is not locked, we can override it<\/span>\r\n        colorLocked: <span style=\"color: #333;font-weight: 500\">false<\/span>,\r\n      },\r\n    ];\r\n  }\r\n};<\/code><\/pre>\n<\/div>\n"},{"acf_fc_layout":"image","image":{"ID":1748602,"id":1748602,"title":"surface","filename":"surface-scaled.png","filesize":1105333,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/surface-scaled.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web\/surface","alt":"","author":"7011","description":"","caption":"","name":"surface","status":"inherit","uploaded_to":1745542,"date":"2022-10-27 13:12:07","modified":"2022-10-27 13:12:07","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":2560,"height":1442,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/surface-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/surface-scaled.png","medium-width":464,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/surface-scaled.png","medium_large-width":768,"medium_large-height":433,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/surface-scaled.png","large-width":1917,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/surface-1536x865.png","1536x1536-width":1536,"1536x1536-height":865,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/surface-2048x1153.png","2048x2048-width":2048,"2048x2048-height":1153,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/surface-826x465.png","card_image-width":826,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/surface-1918x1080.png","wide_image-width":1918,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<div>\n<h2>Sections<\/h2>\n<div>A section is a two-sided vertical or horizontal plane cutting through a voxel layer. Creating sections allows us to analyze profiles in the data. In ArcGIS Pro a section can be locked, so that it also displays when changing the variable. Like this we are able to compare several variables. In ArcGIS API for JavaScript we can&#8217;t create locked sections, but we can visualize the ones created in ArcGIS Pro.<\/div>\n<div>In our application I&#8217;m dynamically generating the sections, to be able to explore vertical temperature profiles at any location. To define a <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-voxel-VoxelDynamicSection.html\" target=\"_blank\" rel=\"noopener\">dynamic section<\/a> we set a point that the plane should pass through, an orientation and a tilt angle for the plane:<\/div>\n<\/div>\n"},{"acf_fc_layout":"image","image":{"ID":2192272,"id":2192272,"title":"section2","filename":"section2.png","filesize":297167,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/section2.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web\/section2-2","alt":"","author":"7011","description":"","caption":"","name":"section2-2","status":"inherit","uploaded_to":1745542,"date":"2023-12-12 08:12:20","modified":"2023-12-12 08:12:20","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":826,"height":474,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/section2-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/section2.png","medium-width":455,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/section2.png","medium_large-width":768,"medium_large-height":441,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/section2.png","large-width":826,"large-height":474,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/section2.png","1536x1536-width":826,"1536x1536-height":474,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/section2.png","2048x2048-width":826,"2048x2048-height":474,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/section2-810x465.png","card_image-width":810,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/section2.png","wide_image-width":826,"wide_image-height":474}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<div>\n<div>The point is defined in voxel space, so we&#8217;ll need to retrieve the voxel dimensions:<\/div>\n<pre><code style=\"padding: 0.5em;color: #333;background: #f8f8f8\"><span style=\"color: #333;font-weight: bold\">const<\/span> dimensions = voxelLayer.getVolume().sizeInVoxels;<\/code><\/pre>\n<p>This is the code to generate a section that passes through the center of the voxel layer and is oriented from north to south like the image above:<\/p>\n<pre><code style=\"padding: 0.5em;color: #333;background: #f8f8f8\">layer.volumeStyles.getItemAt(<span style=\"color: #008080\">0<\/span>).dynamicSections = [\r\n  {\r\n    enabled: <span style=\"color: #333;font-weight: 500\">true<\/span>,\r\n    orientation: <span style=\"color: #008080\">90<\/span>,\r\n    tilt: <span style=\"color: #008080\">90<\/span>,\r\n    point: [<span style=\"color: #0086b3\">Math<\/span>.floor(dimensions[<span style=\"color: #008080\">0<\/span>] \/ <span style=\"color: #008080\">2<\/span>), <span style=\"color: #008080\">0<\/span>, <span style=\"color: #008080\">0<\/span>],\r\n  },\r\n];<\/code><\/pre>\n<p>Note that the y and z coordinates of the point can have any value within the voxel space, with the given orientation and tilt, x is the coordinate that sets the position of the plane.<\/p>\n<\/div>\n"},{"acf_fc_layout":"content","content":"<div>\n<div>\n<h2>Slice the layer<\/h2>\n<div><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-voxel-VoxelSlice.html\" target=\"_blank\" rel=\"noopener\">Slices<\/a> can be used to define areas of interest. Slices apply to both volume and surfaces visualizations. In our application we&#8217;re slicing the layer vertically from east to west and south to north, but also horizontally from top to bottom. Similar to a section, a slice is also defined by a point, an orientation and a tilt value. Let&#8217;s take the example of slicing from top to bottom. In that case the slice can have any orientation, the tilt is 0 and the point&#8217;s z axis is important to give the height at which we want to slice the layer:<\/div>\n<\/div>\n<pre><code style=\"padding: 0.5em;color: #333;background: #f8f8f8\"><span style=\"color: #333;font-weight: bold\">const<\/span> getSlice = height =&gt; {\r\n  <span style=\"color: #333;font-weight: bold\">return<\/span> <span style=\"color: #333;font-weight: bold\">new<\/span> VoxelSlice({\r\n    tilt: <span style=\"color: #008080\">0<\/span>,\r\n    point: [<span style=\"color: #008080\">0<\/span>, <span style=\"color: #008080\">0<\/span>, height],\r\n  });\r\n};<\/code><\/pre>\n<\/div>\n<div><\/div>\n"},{"acf_fc_layout":"image","image":{"ID":1748762,"id":1748762,"title":"slices","filename":"slices.png","filesize":42134,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/slices.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web\/slices","alt":"","author":"7011","description":"","caption":"","name":"slices","status":"inherit","uploaded_to":1745542,"date":"2022-10-27 13:57:25","modified":"2022-10-27 13:57:25","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":603,"height":346,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/slices-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/slices.png","medium-width":455,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/slices.png","medium_large-width":603,"medium_large-height":346,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/slices.png","large-width":603,"large-height":346,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/slices.png","1536x1536-width":603,"1536x1536-height":346,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/slices.png","2048x2048-width":603,"2048x2048-height":346,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/slices.png","card_image-width":603,"card_image-height":346,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/slices.png","wide_image-width":603,"wide_image-height":346}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<div>\n<h2>Change the vertical exaggeration<\/h2>\n<div>In our application we need vertical exaggeration, otherwise we wouldn&#8217;t be able to see the variation of the values on the z axis. To change the exaggeration within ArcGIS API for JavaScript we can set it on <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-voxel-VoxelVolumeStyle.html#verticalExaggeration\" target=\"_blank\" rel=\"noopener\">volumeStyle.exaggeration<\/a>.<\/div>\n<div><\/div>\n<div>I hope this blog post gave you a few ideas of the voxel layer capabilities on the web. If you used voxel layers or plan to use them I&#8217;d be happy to hear about it in the comments below.<\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<\/div>\n"}],"related_articles":[{"ID":1001692,"post_author":"9032","post_date":"2020-09-09 03:31:15","post_date_gmt":"2020-09-09 10:31:15","post_content":"","post_title":"Three ways to prepare your data for Voxel Layer","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"three-ways-to-prepare-your-data-for-voxel-layer","to_ping":"","pinged":"","post_modified":"2020-09-20 09:52:03","post_modified_gmt":"2020-09-20 16:52:03","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1001692","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"2","filter":"raw"},{"ID":1064451,"post_author":"5141","post_date":"2020-11-23 08:10:56","post_date_gmt":"2020-11-23 16:10:56","post_content":"","post_title":"The Science of Where: A voxel visualization of smoke plume rise and dispersion","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"the-science-of-where-a-voxel-visualization-of-smoke-plume-rise-and-dispersion","to_ping":"","pinged":"","post_modified":"2020-11-24 14:17:15","post_modified_gmt":"2020-11-24 22:17:15","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1064451","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":1364972,"post_author":"80572","post_date":"2021-10-06 00:10:00","post_date_gmt":"2021-10-06 07:10:00","post_content":"","post_title":"Representing Permeability Using Voxel Layers","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"representing-permeability-using-voxel-layers","to_ping":"","pinged":"","post_modified":"2021-10-07 08:14:10","post_modified_gmt":"2021-10-07 15:14:10","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1364972","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":1091651,"post_author":"5141","post_date":"2020-12-18 07:00:20","post_date_gmt":"2020-12-18 15:00:20","post_content":"","post_title":"A Workflow for Creating Discrete Voxels","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"a-workflow-for-creating-discrete-voxels","to_ping":"","pinged":"","post_modified":"2023-05-25 13:43:40","post_modified_gmt":"2023-05-25 20:43:40","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1091651","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"1","filter":"raw"},{"ID":970522,"post_author":"80572","post_date":"2020-08-10 14:02:37","post_date_gmt":"2020-08-10 21:02:37","post_content":"","post_title":"How to manipulate Pacific centric NetCDF data as a Voxel Layer","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"how-to-manipulate-pacific-centric-netcdf-data-as-a-voxel-layer","to_ping":"","pinged":"","post_modified":"2021-02-12 11:39:29","post_modified_gmt":"2021-02-12 19:39:29","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=970522","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":1297022,"post_author":"251952","post_date":"2021-07-15 08:08:24","post_date_gmt":"2021-07-15 15:08:24","post_content":"","post_title":"Leveraging Multidimensional Data from NASA AIRS to Track Wildfire Plumes Using 3D Voxel Layers","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"leveraging-multidimensional-data-from-nasa-airs-to-track-wildfire-plumes-using-3d-voxel-layers","to_ping":"","pinged":"","post_modified":"2021-07-16 09:28:12","post_modified_gmt":"2021-07-16 16:28:12","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1297022","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/Screenshot-2022-11-10-at-19.20.36.png","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/Screenshot-2022-10-27-at-16.35.50.png"},"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>Voxel layers - exploring world atmospheric temperature and pressure with ArcGIS API for JavaScript Exploring voxel layers with ArcGIS API for JavaScript<\/title>\n<meta name=\"description\" content=\"Using ArcGIS API for JavaScript to explore multidimensional datasets in a web application\" \/>\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\/developers\/3d-gis\/voxel-layers-web\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Voxel layers - exploring world atmospheric temperature and pressure with ArcGIS API for JavaScript\" \/>\n<meta property=\"og:description\" content=\"Using ArcGIS API for JavaScript to explore multidimensional datasets in a web application\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web\" \/>\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=\"2023-12-12T08:12:42+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\/developers\/3d-gis\/voxel-layers-web#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web\"},\"author\":{\"name\":\"Raluca Nicola\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/e8fe39abb687cde59f7f1296fbfb24a4\"},\"headline\":\"Voxel layers &#8211; exploring world atmospheric temperature and pressure with ArcGIS API for JavaScript\",\"datePublished\":\"2022-11-10T17:53:33+00:00\",\"dateModified\":\"2023-12-12T08:12:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web\"},\"wordCount\":14,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"3D\",\"JavaScript\",\"pressure\",\"temperature\",\"voxel layer\"],\"articleSection\":[\"3D Visualization &amp; Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web\",\"name\":\"Voxel layers - exploring world atmospheric temperature and pressure with ArcGIS API for JavaScript Exploring voxel layers with ArcGIS API for JavaScript\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2022-11-10T17:53:33+00:00\",\"dateModified\":\"2023-12-12T08:12:42+00:00\",\"description\":\"Using ArcGIS API for JavaScript to explore multidimensional datasets in a web application\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Voxel layers &#8211; exploring world atmospheric temperature and pressure with ArcGIS API for JavaScript\"}]},{\"@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\/e8fe39abb687cde59f7f1296fbfb24a4\",\"name\":\"Raluca Nicola\",\"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\/2018\/04\/7VkWXsZ3_400x400.jpg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/7VkWXsZ3_400x400.jpg\",\"caption\":\"Raluca Nicola\"},\"description\":\"Raluca works as a web cartographer with the Geo Experience Center team at Esri. She loves to play around with web technologies and visualization styles. If she's not in front of the computer, she's probably somewhere up in the mountains.\",\"sameAs\":[\"https:\/\/raluca-nicola.net\/\",\"https:\/\/www.linkedin.com\/in\/raluca-nicola-cartography\/\",\"https:\/\/x.com\/nicolaraluk\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/raluca_zurich\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Voxel layers - exploring world atmospheric temperature and pressure with ArcGIS API for JavaScript Exploring voxel layers with ArcGIS API for JavaScript","description":"Using ArcGIS API for JavaScript to explore multidimensional datasets in a web application","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\/developers\/3d-gis\/voxel-layers-web","og_locale":"en_US","og_type":"article","og_title":"Voxel layers - exploring world atmospheric temperature and pressure with ArcGIS API for JavaScript","og_description":"Using ArcGIS API for JavaScript to explore multidimensional datasets in a web application","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2023-12-12T08:12:42+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\/developers\/3d-gis\/voxel-layers-web#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web"},"author":{"name":"Raluca Nicola","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/e8fe39abb687cde59f7f1296fbfb24a4"},"headline":"Voxel layers &#8211; exploring world atmospheric temperature and pressure with ArcGIS API for JavaScript","datePublished":"2022-11-10T17:53:33+00:00","dateModified":"2023-12-12T08:12:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web"},"wordCount":14,"commentCount":2,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["3D","JavaScript","pressure","temperature","voxel layer"],"articleSection":["3D Visualization &amp; Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web","name":"Voxel layers - exploring world atmospheric temperature and pressure with ArcGIS API for JavaScript Exploring voxel layers with ArcGIS API for JavaScript","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2022-11-10T17:53:33+00:00","dateModified":"2023-12-12T08:12:42+00:00","description":"Using ArcGIS API for JavaScript to explore multidimensional datasets in a web application","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/voxel-layers-web#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Voxel layers &#8211; exploring world atmospheric temperature and pressure with ArcGIS API for JavaScript"}]},{"@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\/e8fe39abb687cde59f7f1296fbfb24a4","name":"Raluca Nicola","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\/2018\/04\/7VkWXsZ3_400x400.jpg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/7VkWXsZ3_400x400.jpg","caption":"Raluca Nicola"},"description":"Raluca works as a web cartographer with the Geo Experience Center team at Esri. She loves to play around with web technologies and visualization styles. If she's not in front of the computer, she's probably somewhere up in the mountains.","sameAs":["https:\/\/raluca-nicola.net\/","https:\/\/www.linkedin.com\/in\/raluca-nicola-cartography\/","https:\/\/x.com\/nicolaraluk"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/raluca_zurich"}]}},"text_date":"November 10, 2022","author_name":"Raluca Nicola","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/raluca_zurich","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/10\/Screenshot-2022-10-27-at-16.35.50.png","primary_product":"Developers","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":24921,"name":"JavaScript","slug":"javascript","term_group":0,"term_taxonomy_id":24921,"taxonomy":"post_tag","description":"","parent":0,"count":151,"filter":"raw"},{"term_id":767652,"name":"pressure","slug":"pressure","term_group":0,"term_taxonomy_id":767652,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":438852,"name":"temperature","slug":"temperature","term_group":0,"term_taxonomy_id":438852,"taxonomy":"post_tag","description":"","parent":0,"count":7,"filter":"raw"},{"term_id":757951,"name":"voxel layer","slug":"voxel-layer","term_group":0,"term_taxonomy_id":757951,"taxonomy":"post_tag","description":"","parent":0,"count":2,"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"}],"product_data":[{"term_id":36831,"name":"ArcGIS Maps SDK for JavaScript","slug":"js-api-arcgis","term_group":0,"term_taxonomy_id":36831,"taxonomy":"product","description":"","parent":36601,"count":361,"filter":"raw"},{"term_id":36601,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":36601,"taxonomy":"product","description":"","parent":0,"count":761,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=developers","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1745542","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\/7011"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=1745542"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1745542\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=1745542"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=1745542"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=1745542"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=1745542"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=1745542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}