Making Noise with ArcGIS Making Noise with ArcGIS by by Jeffery S. Jeffery S. Nighbert Nighbert Bureau of Land Management Bureau of Land Management Portland, Oregon Portland, Oregon
Making Noise with ArcGISMaking Noise with ArcGIS
by by Jeffery S. Jeffery S. NighbertNighbert
Bureau of Land ManagementBureau of Land ManagementPortland, OregonPortland, Oregon
Ken Ken PerlinPerlin ––““Making NoiseMaking Noise””www.noisemachine.com/talk1www.noisemachine.com/talk1
Tom Patterson Tom Patterson –– ““Getting Real: Getting Real: Reflecting on the New Look of Reflecting on the New Look of National Park Service MapsNational Park Service Maps””
Mario Mario LivioLivio –– ““The Golden RatioThe Golden RatioThe Story of Phi, The WorldThe Story of Phi, The World’’s s
Most Astonishing NumberMost Astonishing Number””
Michael Crichton Michael Crichton –– ““Jurassic ParkJurassic Park””
Columbia Basin Map Columbia Basin Map –– Painted reliefPainted relief
Crater Lake Map Crater Lake Map –– TexturizedTexturized painted reliefpainted relief
Sisters Sisters –– class based class based texturizedtexturized painted reliefpainted relief
KigerKiger Gorge Gorge –– class based class based texturizedtexturizedpainted relief using objectspainted relief using objects
Sphere no BumpsSphere no Bumps Sphere with BumpsSphere with Bumps
Bump Map Objects Bump Map Objects –– Top ViewTop View
Sphere Sphere –– Deciduous TreeDeciduous Tree
Cone Cone –– Evergreen TreeEvergreen Tree
Cube Cube –– Structure/RockStructure/Rock
Spatial Analyst: Cones in a Random PatternSpatial Analyst: Cones in a Random Pattern
Cones_patCones_pat = = abs(eucdistance(con(($$ROWMAPabs(eucdistance(con(($$ROWMAP mod mod int(normalint(normal() * 1 + 20) () * 1 + 20) eqeq 0) and ($$COLMAP mod 0) and ($$COLMAP mod int(normalint(normal() * () * 1 + 20) 1 + 20) eqeq 0),255),#,#,10,#) 0),255),#,#,10,#) -- 10) * (40 / 10)10) * (40 / 10)
Cone GenerationCone Generation
Class objects by pattern by class Class objects by pattern by class Spatial analyst: Generate objects in a random pattern within thSpatial analyst: Generate objects in a random pattern within the aspen e aspen classclass
Raster Calculator: Raster Calculator: aspens_pataspens_pat = = eucdistance(con(($$ROWMAPeucdistance(con(($$ROWMAP mod mod int(normalint(normal() * 1 + 20) () * 1 + 20) eqeq 0) and ($$COLMAP mod 0) and ($$COLMAP mod int(normalint(normal() * 1 + 20) () * 1 + 20) eqeq 0) and [0) and [k_aspensk_aspens] > 0,255),#,#,10,#)] > 0,255),#,#,10,#)
Raster Calculator: Raster Calculator: esri_aspenesri_aspen = sqrt(pow(10,2) = sqrt(pow(10,2) -- pow([aspens_pat],2))pow([aspens_pat],2))
Close upClose up……
How could this process be improved?How could this process be improved?
Greater control over size spacing and Greater control over size spacing and content!content!GIS database drivenGIS database drivenPattern based on dataPattern based on dataCan the pattern be made Can the pattern be made ““smartsmart””??
Stand Structure ClassesStand Structure Classes
Stand Structure Data and Summary TablesStand Structure Data and Summary Tables
Structure FC tableStructure FC table
Create Random Points ToolCreate Random Points Tool
520,622 Points520,622 Points
Point Attribute tablePoint Attribute table
Custom Python Script reads stand structure data table and cursorCustom Python Script reads stand structure data table and cursors s Through thousands of records assigning proper tree data!Through thousands of records assigning proper tree data!
Buffered pts using crown radiusBuffered pts using crown radius
Make a Smart TextureMake a Smart Texture
RasterizeRasterize buffers using crown radiusbuffers using crown radiusRasterizeRasterize buffers using tree heightbuffers using tree height
EucDistance(crown_radiusEucDistance(crown_radius,#,#,#,#),#,#,#,#)
bump_surfacebump_surface = ([a1crown] = ([a1crown] --[a1distance]) / [a1crown]) * [a1height][a1distance]) / [a1crown]) * [a1height]
Add elevation to bump surfaceAdd elevation to bump surface
Hillshade Bump mapHillshade Bump map
Final Bump MapFinal Bump Map
Texture query with Buffer Texture query with Buffer
To Do ListTo Do List
Better random pattern generationBetter random pattern generation–– PerlinPerlin NoiseNoise–– Penrose and Penrose and mandlebrotmandlebrot fractalsfractals–– ““Rules of NatureRules of Nature””–– Pattern LayersPattern Layers
Use 3d symbols in Use 3d symbols in ArcSceneArcSceneFinalize and document python script Finalize and document python script and processes.and processes.
Thank You!!!Thank You!!!
Questions?Questions?
Jeffery S. NighbertJeffery S. [email protected]@or.blm.gov