Using ArcGIS Experience Builder for 3D Mapping of Zoning restrictions and Buildings in Toronto

Daniel Kogan

Geovis Project Assignment @RyersonGeo, SA8905, Fall 2021

Introduction/ background

Every city has zoning bylaws that dictate land use. Most cities, including the City of Toronto, have zoning bylaws that set building height limits for different zoning areas. Sometimes, buildings are built above the height limit, either due to development agreements or grandfathering of buildings (when a new zoning by-law doesn’t apply to existing buildings). The aim of this project is to provide a visualization tool for assessing which buildings in Toronto are within the zoning height limits and which are not.

Data and Processing

3D Buildings

The 3D building data was retrieved from Toronto Open Data and derived using the following methods:

  • LiDAR (2015)
  • Site Plans – building permit site plan drawings
  • Oblique Aerials – oblique aerial photos and “street view” photos accessible in Pictometry, Google Earth, and Google Maps.
  • 3DMode – digital 3D model provided by the developer

Zoning Bylaws

Two zoning Bylaw shapefiles were used (retrieved from Toronto Open Data as well):

  • Building Heights Limits – spatially joined (buildings within zoning area) to the 3D buildings to create the symbology shown on the map. Categories were calculated using the max average building height (3D data) and zoning height limit (zoning bylaws).
  • Zoning Categories – used to gain additional information and investigate how or why buildings went over the zoning height limit.


ArcGIS experience builder was used to visualize the data. A local scene with the relevant data was uploaded as a web scene and chosen as the data source for the interactive map in the “Experience”. The map includes the following aspects: Legend showing the zoning and height categories, a layer list allowing users to toggle the zoning category layer on to for further exploration of the data, and a “Filter by Height Category” tool that allows users to view buildings within a selected height category. Pop-ups are enabled for individual buildings and zones for additional information. Some zones include bylaw expectations which may explain why some of the buildings within them are allowed to be above the zoning height limit (only an exception code is provided, a google search is required to gain a better understanding). instructions and details about the map are provided to the user as well.


The main limitation of this project is insufficient data – a lack of either building height or zoning height results in a category of “No data” which are displayed as grey buildings. Another limitation is possibly the accuracy of the data, as LiDAR data can sometimes be off and provide wrong estimates of building height. Inaccuracies within 1m were solved by adding an additional category, but there may be some inaccuracies beyond

Visualizing Urban Land Use Growth in Greater Sào Paulo

By: Kevin Miudo

Geovis Project Assignment @RyersonGeo, SA8905, Fall 2018


In this online development blog for my created map animation, I intend to discuss the steps involved in producing my final geovisualization product, which can be viewed above in the embedded youtube link. It is my hope that you, the reader, learn something new about GIS technologies and can apply any of the knowledge contained within this blog towards your own projects. Prior to discussing the technical aspects of the map animations development, I would like to provide some context behind the creation of my map animation.

Cities within developing nations are experiencing urban growth at a rapid rate. Both population and sprawl are increasing at unpredictable rates, with consequences for environmental health and sustainability. In order to explore this topic, I have chosen to create a time series map animation visualizing the growth of urban land use in a developing city within the Global South. The City which I have chosen is Sào Paulo, Brazil. Sào Paulo has been undergoing rapid urban growth over the last 20 years. This increase in population and urban sprawl has significant consequences to climate change, and such it is important to understand the spatial trend of growth in developing cities that do not yet have the same level of control and policies in regards to environmental sustainability and urban planning. A map animation visualizing not only the extent of urban growth, but when and where sprawl occurs, can help the general public get an idea of how developing cities grow.

Data Collection

In-depth searches of online open data catalogues for vector based land use data cultivated little results. In the absence of detailed, well collected and precise land use data for Sào Paulo, I chose to analyze urban growth through the use of remote sensing. Imagery from Landsat satellites were collected, and further processed in PCI Geomatica and ArcGIS Pro for land use classification.

Data collection involved the use of open data repositories. In particular, free remotely sensed imagery from Landsat 4, 5, 7 and 8 can be publicly accessed through the United States Geological Survey Earth Explorer web page. This open data portal allows the public to collect imagery from a variety of satellite platforms, at varying data levels. As this project aims to view land use change over time, imagery was selected at data type level-1 for Landsat 4-5 Thematic Mapper and Landsat 8 OLI/TIRS. Imagery selected had to have at least less than 10% cloud cover, and had to be images taken during the daytime so that spectral values would remain consistent across each unsupervised image classification.

Landsat 4-5 imagery at 30m spectral resolution was used for the years between 2004 and 2010. Landsat-7 Imagery at 15m panchromatic resolution was excluded from search criteria, as in 2003 the scan-line corrector of Landsat-7 failed, making many of its images obsolete for precise land use analysis. Landsat 8 imagery was collected for the year 2014 and 2017. All images downloaded were done so at the Level-1 GeoTIFF Data Product level. In total, six images were collected for years 2004, 2006, 2007, 2008, 2010, 2014, 2017.

Data Processing

Imagery at the Level-1 GeoTIFF Data Product Level contains a .tif file for each image band produced by Landsat 4-5 and Landsat-8. In order to analyze land use, the image data must be processed as a single .tiff. PCI Geomatica remote sensing software was employed for this process. By using the File->Utility->Translate command within the software, the user can create a new image based on one of the image bands from the Landsat imagery.

For this project, I selected the first spectral band from Landsat 4-5 Thematic Mapper images, and then sequentially added bands 2,3,4,5, and band 7 to complete the final .tiff image for that year. Band 6 is skipped as it is the thermal band at 120m spatial resolution, and is not necessary for land use classification. This process was repeated for each landsat4-5 image.Similarly for the 2014 and 2017 Landsat-8 images, bands 2-7 were included in the same manner, and a combined image was produced for years 2014 and 2017.

Each combined raster image contained a lot of data, more than required to analyze the urban extent of Sào Paulo and as a result the full extent of each image was clipped. When doing your own map animation project, you may also wish to clip data to your study area as it is very common for raw imagery to contain sections of no data or clouds that you do not wish to analyze. Using the clipping/subsetting option found under tools in the main panel of PCI Geomatica Focus, you can clip any image to a subset of your choosing. For this project, I selected the coordinate type ‘lat/long’ extents and input data for my selected 3000×3000 pixel subset. The input coordinates for my project were: Upper left: 46d59’38.30″ W, Upper right: 23d02’44.98″ S, Lower right: 46d07’21.44″ W, Lower Left: 23d52’02.18″ S.

Land Use Classification

The 7 processed images were then imported into a new project in ArcPro. During importation, raster pyramids were created for each image in order to increase processing speeds.  Within ArcPro, the Spatial Analyst extension was activated. The spatial analyst extension allows the user to perform analytical techniques such as unsupervised land use classification using iso-clusters. The unsupervised iso-clusters tool was used on each image layer as a raster input.

The tool generates a new raster that assigns all pixels with the same or similar spectral reluctance value a class. The number of classes is selected by the user. 20 classes were selected as the unsupervised output classes for each raster. It is important to note that the more classes selected, the more precise your classification results will be. After this output was generated for each image, the 20 spectral classes were narrowed down further into three simple land use classes. These classes were: vegetated land, urban land cover, and water. As the project primarily seeks to visualize urban growth, and not all types of varying land use, only three classes were necessary. Furthermore, it is often difficult to discern between agricultural land use and regular vegetated land cover, or industrial land use from residential land use, and so forth. Such precision is out of scope for this exercise.

The 20 classes were manually assigned, using the true colour .tiff image created from the image processing step as a reference. In cases where the spectral resolution was too low to precisely determine what land use class a spectral class belong to, google maps was earth imagery referenced. This process was repeated for each of the 7 images.

After the 20 classes were assigned, the reclassify tool under raster processing in ArcPro was used to aggregate all of the similar classes together. This outputs a final, reclassified raster with a gridcode attribute that assigns respective pixel values to a land use class. This step was repeated for each of the 7 images. With the reclassify tool, you can assign each of the output spectral classes to new classes that you define. For this project, the three classes were urban land use, vegetated land, and water.

Cartographic Element Choices:

 It was at this point within ArcPro that I had decided to implement my cartographic design choices prior to creating my final map animation.

For each layer, urban land use given a different shade of red. The later the year, the darker and more opaque the colour of red. Saturation and light used in this manner helps assist the viewer to indicate where urban growth is occurring. The darker the shade of red, the more recent the growth of urban land use in the greater Sào Paulo region. In the final map animation, this will be visualized through the progression of colour as time moves on in the video.

ArcPro Map Animation:

Creating an animation in ArcPro is very simple. First, locate the animation tab through the ‘View’ panel in ArcPro, then select ‘Add animation’. Doing so will open a new window below your work space that will allow the user to insert keyframes. The animation tab contains plenty of options for creating your animation, such as the time frame between key frames, and effects such as transitions, text, and image overlays.

For the creation of my map animation, I started with zoomed-out view of South America in order to provide the viewer with some context for the study area, as the audience may not be very familiar with the geography of Sào Paulo. Then, using the pan tool, I zoomed into select areas of choice within my study area, ensuring to create new keyframes every so often such that the animation tool creates a fly-by effect. The end result explores the very same mapping extents as I viewed while navigating through my data.

While making your own map animation, ensure to play through your animation frequently in order to determine that the fly-by camera is navigating in the direction you want it to. The time between each keyframe can be adjusted in the animation panel, and effects such as text overlays can be added. Each time I activated another layer for display to show the growth of urban land use from year to year, I created a new keyframe and added a text overlay indicating to the user the date of the processed image.

Once you are satisfied with your results, you can export your final animation in a variety of formats, such as .avi, .mov, .gif and more. You can even select the type of resolution, or use a preset that automatically configures your video format for particular purposes. I chose the youtube export format for a final .mpeg4 file at 720p resolution.

I hope this blog was useful in creating your very own map animation on remotely sensed and classified raster data. Good luck!

CloudCities 3D Model of the Ryerson Campus

Justin Miron

Submission for GeoVis Project Assignment @RyersonGeo, SA8905, Fall 2016

Interactive City Models

One of the most useful visualization and planning tools used in urban planning and design is the 3D model: a to-scale representation of the built form of a city, its existing (and as-built) conditions and its proposed (or possible) conditions.  A 3D model effectively communicates information about the proportion, size, and distribution of structures and other urban elements, that when well made and presented is intuitively grasped by the people that are viewing it.

A principal drawback to most 3D models is that they are physical models, and they take a lot of time to create, to modify, and can only be shared with an audience who is physically present. One way to solve the this problem is to replace the physical with a 3D digital model (using 3D modelling software such as Rhino, ArchiCAD, Blender, Solidworks, etc.) and to share the models with other users.  Yet, there are drawbacks to this approach, too. For one, these models can only be shared with users that have the same (or similar) software of the kind that was used to create the model. For users who do not have the correct software, static or animated representations of the model are made which, while they can still convey information, do not allow the user make choices on what aspects of the model they want to view or explore.

Beyond this technical problem, the models are not geographic and they are not data-driven. Though they are spatial, they are not referenced to a location on the earth and they don’t contain attributes. There is no way to know what building or open space you are looking at without asking someone who is familiar with the model. Informal exploration is just too limited. One way to solve these problems is to store and view 3D model information in CloudCities.

CloudCities and the Ryerson Campus

CloudCities is a geographically-enriched 3D model viewing and storage platform. The graphical rendering is done through ThreeJS, a javascript library used to build and render 3D objects in a browser. It is one of several platforms that blend geographic information within a 3D environment (see here and here for further examples).

CloudCities allows users to upload 3D model information, such as a building, tree, vehicle, or terrain, as well as their attributes. Not all 3D information can be uploaded (for instance, stylized 3D lines or other non-geographic 3D visualizations are not generally possible). In addition to upload, CloudCities has several customization features that allow the model scene to be modified: sun/shadow settings; pre-set camera views and 3D slides; a search function; location comparison to OpenStreetMap; and dynamic attribute and 3D editing, which allows the user to dynamically modify/add to object attributes and to use basic 3D editing functions.

CloudCities is built to store and view 3D models (as opposed to general 3D visualizations), and specifically 3D models of cities (multiple buildings, blocks, terrain, etc.) so for this project I have built a model of the bulk of Ryerson University’s Campus in downtown Toronto.

Area used for the CloudCities model
Area used for the CloudCities model

A view of the entire model


The input data for the model’s 3D buildings is from two sources: myself, who modelled several buildings on the Ryerson campus, including Kerr Hall, in Rhinoceros (Rhino), a 3D modelling program, and the City of Toronto’s Open Data portal, which maintains a 3D massing and building model dataset that is frequently updated and that is available in several formats.

The 3D information from the City of Toronto is of high quality, but it is released in several formats, and not all of these formats contain equivalent data. Out of all of the data available, the 3D CAD information is the most detailed and accurate but it is harder to work with.

Ultimately, all of the 3D information that fits within the sample area were converted, by individual building, into multipatch features using the ArcGIS 3D Analyst extension. These multipatches were loaded into ArcScene, exported to an ESRI 3D webscene format, and then uploaded into a CloudCities scene. While there are other ways to create a functional CloudCities scene, uploading from ArcScene is the most straightforward, though it is certainly not an option for everyone (see the Asset import tutorial), especially when they do not have ArcScene or 3D Analyst available to use!

Rhinoceros model of Kerr Hall (above) and a multipatch of the Ryerson Student Center (below)

I manually modelled Kerr Hall because I wanted it to be more detailed than that stored within the City of Toronto dataset. The modelling was done in Rhino. The model was then exported from Rhino into .3DS format, then to multipatch to be included into the webscene uploaded into CloudCities. Deletion of original building massing data from the City of Toronto dataset was required where another model instance – in this case, custom-models like that of Kerr Hall – takes its place. 

Zoning information is also provided by the City’s Open Data portal and this was used to code each building instance with its associated zone category (e.g. R or ‘Residential’).

I have customized and manually refined City blocks (which define the road surfaces) and green open space areas because these are not accurately captured within the City’s data.

Complex Data

Terrain surfaces and trees (which can be very complex objects) were not added to this model because of the eventual data size requirements, but in order for these elements to look good and not awkward, they must be of sufficient detail. Terrain published by the City of Toronto, even when simplified, is a complex geometry that would weigh on the model’s performance. In addition, terrain requires that buildings sit on top of the surface, but the buildings modelled by the City do not account for an uneven grade around the base (what is known as Finished Floor Elevation). While this detail can be made within the models, the eventual time required would have been onerous. The more detail in a building and the more the model approximates reality, the longer the model will take to create.

User Experience (UX) highlights

In the CloudCities model, buildings contain a name, whether they are Ryerson University buildings, the planning zone they fall within (e.g. commercial or residential), and the size of the building footprint area in sq.m. Some of this information is added within the pre-upload ArcGIS environment, but much of it is added from within CloudCities’ editing environment.

These attributes serve as the basis for dashboards and a search bar. The dashboard displays these vital statistics whenever a building object is clicked.


Dashboard reveals attributes when a building is clicked.

Additionally, a search bar and search constraints can be set, and the user can search through the scene’s attributes to highlight objects that are returned. For instance, every building that has the zone ‘Commercial Residential’ is highlighted whenever that term is entered into the search. The search functions are limited, however – there are no advanced queries supported by CloudCities. Instead, various constraints on searches must be set on the back end to make sure that a particular search does not return any object that fulfills any small dimension of the attribute data.

Search results when "Commercial Residential" is entered
Search results when “Commercial Residential” is entered

Specific locations can be saved as bookmarks, and these aid in presentation purposes. These locations can be combined into a slideshow “tour” of the model. This is a particularly relevant feature when sending the model to others, as the locations are stored with the scene, and literally move the user point of view around the model in order to tell a story.

Camera bookmarks can help guide a user through the model

A sun/shade rendering tool can be implemented, which allows the user to set the time of year and time of day to create a realistic view of how shadows would be cast by model elements based on the model’s location on the earth, although this is not a sun shadow calculator and is meant simply to enhance the experience of the model.

Sun and shadow controls

Limitations of CloudCities

One of the main limitations of CloudCities is that it is not customizable from a development point of view. A user is limited to pre-set dashboard, search, and styling options. In addition, the platform costs money and is billed at a hefty $60 USD+/per month in order to create a city model to the detail that was made for this post.

The range of 3D visualizations possible is limited. It would be nice to have a platform that incorporates more options for presenting thematic data that goes beyond dashboards and search bars. There is a lot of 3D data that does not manifest itself in a 3D structure. ThreeJS’s gallery of 3D visualizations provides interesting examples of how 3D city modelling could be developed in the future.

Despite these limitations, CloudCities provides an easy-to-use platform for making and viewing 3D city models. I do not believe that CloudCities will always be the only platform that offers the same functionality, but it is currently a really good example of how urban planners and designers can take advantage of geo-technology to create a more interactive and data-rich experience of their 3D information.

The final model can be viewed on CloudCities hereAfter mid-December 2016, the model’s geographic extents will be greatly reduced so that the model can be stored on a free account.