So far we've usually modeled cities using CityEngine, but the concept of procedural modeling can go much further. In this case we have a 5D data set for an oil spill. The first three dimensions are x,y,z - spatial coordinates. The fourth dimension is time - our dataset contains data at 15-minute intervals for 3 days, which is 288 moments in time. The fifth dimension is qualitative - a rating of viscosity, or "gloopiness", which tells about the density of the oil spill. The sum of this data, seen below, shows the course and strength of the spill, in 3D, with all 15 minute moments shown in one frame.
Since this was a quick visualization, we used a cube for each point. The density is shown by displaying the cubes on a white to black ramp, and scaling the cubes based on relative density, so the largest and darkest are the most dense. You will notice a curving line of large, black cubes moving through the middle, That is the thickest part of the spill. All of the cubes surround that line is the dispersion of oil into the sea.
This was a quick rule, that might get taken further to make an RPK for ArcGIS Pro. The CGA code is below the images.
version "2014.1" # Viscosity. Higher number means more density, more crude. attr MASS_MT = 0 attr TIME = "" # Not using TIME yet. attr maxVisSize = 50 const scaleAmount = MASS_MT * maxVisSize PointGlob --> i("builtin:cube") s(scaleAmount,scaleAmount,scaleAmount) # MASS_MT is normalized to 0 to 1 range, which saves a few lines. color(colorRamp("whiteToBlack", MASS_MT))