Project

Geospatial Analytics in Power BI: A Comprehensive Guide

An intensive project providing a comprehensive overview of geospatial analytic capabilities in Power BI using DAX.

Empty image or helper icon

Geospatial Analytics in Power BI: A Comprehensive Guide

Description

This project begins with basic geospatial concepts, then moves to practical application techniques using Power BI and DAX. The project advances to in-depth case studies, providing clarity through real-world applications of geospatial analytics. This journey will be beneficial for new students eager to grasp the concepts of Power BI geospatial analytics, as well as experienced users who want to unlock further potential of the tool.

Understanding Geospatial Concepts in Power BI using DAX

This section will cover a detailed tutorial on how to use Geospatial concepts in Power BI using the DAX (Data Analysis Expressions) language.

Prerequisites/Preparations

  • Power BI Desktop: If you haven't installed it yet, you can download it from here (https://www.microsoft.com/games/pivot/).
  • A dataset with geographical information (coordinates, city names, postal codes etc.)

Steps

Below are the steps to perform geospatial data analysis using DAX in Power BI:

Load the Data

First, we need to load the data into Power BI.

  1. Click on Home > Get Data > More.
  2. Choose Excel > Connect and then select your data.

Inspect the Data

Now, we need to ensure that our data contains geographic information recognized by Power BI.

  1. Click Data view and check whether Power BI has correctly assigned geographic roles to your data columns e.g., City recognized as City.
  2. If not, go to column tools and manually assign a geographical role to the respective column.

Create a Geographical Report

Now, we've prepared the data. Let's plot it.

  1. Go back to Report view and drag a Map visual to the report canvas.
  2. Drag your geographical column (city, country etc.) to the Location field well, and another (sales, population etc.) to the Size field well.

Customize Tooltip using DAX

We can enhance the geographical report by adding a custom tooltip using DAX

  1. Click on Data view, choose New table, and enter the following DAX formula:
TooltipData = SUMMARIZECOLUMNS('YourTable'[City], "Total Population", SUM('YourTable'[Population]))

This will create a new table TooltipData with city-wise population.

  1. Now, go back to the Report view, select the map visual, and add the newly created table to the Tooltip field well.

Refresh your Report

Finally, with all data and custom tooltip in place, you can refresh your report and that's it. You can hover over any location in the map visual to show the tooltip with city-wise population.

Notes

This was a basic tutorial that only covers the loading of data, checking the recognization of geographical fields, plotting simple geographical data, and customizing tooltip with DAX. However, DAX is a powerful language that can perform much more complex calculations which could be used to generate powerful reports involving hierarchical data, time series, etc.

Introduction to Power BI and DAX for Geospatial Analysis

In this tutorial, we will cover the practical implementation of Power BI and DAX for geospatial analysis. To do this, we will use Power BI's built-in geospatial functionalities and DAX Language. Since the focus is geospatial analysis, we will be working primarily with maps and geospatial data.

Please ensure that you already have Power BI and your geospatial data set up.

1. Importing Geospatial Data Into Power BI

Let's start by importing the geospatial data into Power BI. We will assume that the data is stored in an Excel file:

  • Navigate to the Home tab in Power BI.
  • Click on Get Data.
  • Select Excel.
  • Navigate to the file location.
  • Click on Load.

2. Creating a Map Visualization

Once the data is imported, let's create a Map visualization.

  • In the Fields pane, select the data that you want to visualize on the Map.
  • Drag the fields corresponding to geographic data (such as country or state) into the Location field well of the Map visualization.
  • Drag a measure into the Color saturation field well.

3. DAX for Geospatial Analysis

DAX (Data Analysis Expressions) is used for creating custom functions and expressions in Power BI. Let's create a basic DAX measure to aggregate some data.

Assuming we have a dataset with sales and countries fields, let's create a measure to calculate the total sales.

  • Right click on the dataset
  • Click on New measure.
  • Enter the formula in the formula bar: Total Sales = SUM('Table'[Sales]).

You can use the 'Total Sales' measure in your map visualization e. g. in Color saturation or Size.

4. Filtering Data using DAX

You can further enhance your geospatial analysis by creating filters with DAX. This allows you to focus on specific data. This is an example of a measure to filter data for a specific country (USA).

  • Right click on the dataset
  • Click on New measure.
  • Enter the formula: USA Sales = CALCULATE(SUM('Table'[Sales]), 'Table'[Country] = "USA").

To apply the measure to the Map visualization, drag it to the Values field well.

With this, you can perform more advanced filtering operations based on your need, using DAX expressions.

5. Time-based Filtering using DAX

You can use DAX to create time-based filters as well. For instance, you can create a measure to filter the data for a particular year.

  • Right click on the dataset
  • Click on New measure.
  • Enter the formula: 2019 Sales = CALCULATE(SUM('Table'[Sales]), YEAR('Table'[Date]) = 2019).

You can apply this new measure to your Map visualization like before.

By realizing these steps, we have covered the basics of using DAX for geospatial analysis using Power BI. You can further experiment with DAX to create more advanced formulae and measures based on the requirements of your geospatial data.

Implementing Basic Geospatial Techniques in Power BI using DAX

Before beginning, ensure that you have a working knowledge of geospatial concepts, an introductory understanding of Power BI and DAX for geospatial data analysis, and a dataset on Power BI with geospatial data such as locations, latitude, and longitude.

Section 1: Building Basic Geospatial Visuals

Let's start with creating basic geospatial visuals on PowerBI. Based on the geospatial data in the dataset which consists of information such as locations, latitude and longitude, we will create a basic map visual.

  1. On the Power BI report screen, select the "Map" visual from the Visualizations pane.
  2. Once the Map visual is on your report canvas, drag the geographical fields such as City, State or Country into "Location" field well and drag the value field (like Sales) into "Size" field well.

Location: [City] Size: SUM([Sales]) //DAX Calculation for Total Sales

Section 2: Adding Layers to Maps

Maps in Power BI can have multiple layers with different types of visuals. Let's add another layer to our map.

  1. On your Map visual, go to Format and then Layers.
  2. Click "Add Layer".
  3. Drag your geographical location to the new location field and the value field to the new size field well.

Location: [State] Size: AVERAGE([Sales]) //DAX Calculation for Average Sales by State

You now have a map with two layers - one shows total sales by city and another shows average sales by state.

Section 3: Creating Measures using DAX for Geospatial Analysis

Create more meaningful data using DAX Calculations.

  1. Go to Modeling and then click on "New Measure".
  2. Let's create a measure which will calculate the total sales for the 'East' region.

Total Sales East = CALCULATE ( SUM ( [Sales] ), FILTER ( ALL ( Locations[City] ), Locations[City] in "New York" || "Boston" || "Washington D.C." ) )

  1. Now drag this newly created measure in "Tooltips" field well.
  2. Once you hover the mouse over the respective cities (either "New York" or "Boston" or "Washington D.C."), it will show the total sales as per the custom DAX measure.

Section 4: Using DAX to Filter Geospatial Data

DAX functions like CALCULATE and ALL can be used to change the context of the data and filter as per requirements.

Create a measure that will calculate the total sales for all cities excluding 'New York'.

Total Sales Excluding NY = CALCULATE ( SUM ( [Sales] ), FILTER ( ALL ( Locations[City] ), Locations[City] <> "New York" ) )

Drag this measure to the "Legend" field well. The legend will now reflect Total Sales for all cities excluding 'New York'.

Section 5: Creating Drill down Maps

Drill down maps provide further information over a single location.

  1. Click on "Drill down" from the visualization menu.
  2. Drag Region to "Location".
  3. Next, drag Country under Region in the "Location" field well.
  4. Finally, drag City under Country.

You can now click on a region to drill down to countries and then further to cities.

This concludes the practical implementation of basic geospatial techniques in Power BI using DAX.

Advanced Geospatial Techniques Using Power BI

Introduction

This write-up provides advanced geospatial analysis techniques using DAX in Power BI. Our main topics for discussion include interacting with geospatial data filters, integrating Bing Maps with Power BI reports, and the application of custom geospatial visuals.

Prerequisite

Assuming you have already followed the previous guides on this dataset, Power BI Desktop should already be up and running. The dataset must already be loaded, and basic geospatial analysis using DAX would have been performed.

Interacting With Geospatial Data Filters

Interacting with geospatial data filters gives users the ability to perform real-time analysis in a visual and interactive manner.

Let's work with a hypothetical dataset with latitude and longitude data.

// Longitude
Filter_Longitude = 
    CALCULATE(
        MIN(Locations[Latitude]),
        Locations[Latitude] > 
        MIN(Slider[Longitude Start]) && Locations[Latitude] < 
        MAX(Slider[Longitude End])
    )

// Latitude
Filter_Latitude = 
    CALCULATE(
        MIN(Locations[Latitude]),
        Locations[Latitude] > 
        MIN(Slider[Latitude Start]) && Locations[Latitude] < 
        MAX(Slider[Latitude End])
    )
  • Slider is a what-if parameter slider in Power BI, and Locations is the fact table.

Integrating Bing Maps

Bing Maps is a pre-built Power BI visual that adds interactivity to your geospatial data.

To integrate Bing Maps, you will need latitude, longitude data, and an additional category to color the dots on the map differently.

For instance, assuming we have a dataset with Country, City, Latitude, and Longitude data. Here's how we can visualize the data.

Locations = 
    SUMMARIZE(
        SomeDataset,
        SomeDataset[Country],
        SomeDataset[City],
        "Longitude", 
        AVERAGE(SomeDataset[Longitude]),
        "Latitude", 
        AVERAGE(SomeDataset[Latitude]),
    )

Drag the fields Latitude, Longitude, and Country on Bing Maps visual from the Locations table.

Custom Geospatial Visuals

In more advanced cases, you can leverage custom visuals like Icon Map or Mapbox to provide more contextual data.

For instance, using the Icon Map custom visual, we can show some circles with radius representing the size of a population.

// Assuming we have Population and Location data
IconMapData =
    ADDCOLUMNS(
        SUMMARIZE(SomeDataset, SomeDataset[Country]),
        "Population", 
        CALCULATE(SUM(SomeDataset[Population])),
        "Location", 
        SomeDataset[Country]
    )

Add the field Location on the Location field well and Population on the Size field well of the Icon Map visual.


Please note that the given DAX queries might need some tweaking based on your data structure and what exactly you want to achieve. These examples should, however, give you a good start at advanced geospatial techniques using Power BI.

Hands-on: Practical Applications of Geospatial Analytics

Assuming that you already have a solid understanding of the concept of Geospatial analytics, have been introduced to Power BI and DAX, have implemented basic geospatial techniques, and carried out advanced techniques as well using Power BI, we'll directly jump onto practical applications of Geospatial Analytics in Power BI using DAX.

A. Data Preparation and Loading

We'll start by loading and preparing the required data in Power BI. For this example, let's assume we're using a data set that contains location data (Country, City, and Address latitude-longitude details). We can load this into Power BI using the data load options.

// Assuming data has been loaded into 'geoData' table
geoData = LOAD DATA 

B. Creating a Geographical Map

We can create a geographical map to visualize the spatial distribution of data using the built-in Maps visual. In the Visualizations pane, select Map and drag and drop the latitude and longitude fields to the Location field well under Visualizations.

C. Writing DAX expressions for Geospatial data

Analyzing and interpreting geospatial data, we can use DAX because of its powerful and flexible functions.

Let's go through the creation of some key arrangements of geospatial data using DAX functions.

// Total number of unique Locations
Unique Locations = DISTINCTCOUNT(geoData[Location]) 

// The total number of data points for each city
CountByCity = CALCULATE(COUNT(geoData[DataPoint]),ALLEXCEPT(geoData,geoData[City])) 

// Average value of data points in each country
AvgByCountry = CALCULATE(AVERAGE(geoData[DataPoint]), ALLEXCEPT(geoData,geoData[Country])) 

D. Further Visualizations

We can create further visualizations based on our DAX calculations.

For example, we can create a Pie chart illustrating the distribution of data points across different cities. We choose 'Pie chart' from the Visualizations pane and assign 'City' to the 'Legend' field and 'CountByCity' to the 'Values' field.

Another potential visualization is a Column chart showcasing the average data point value per country. We assign 'Country' to the 'Axis' field and 'AvgByCountry' to the 'Values' field.

Each of these visuals provides unique insights into our geospatial data, helping us understand the distribution and characteristics of the data more deeply.

Remember, the more complex your data and business questions are, the more complex the DAX functions and expressions you'll need to write. These examples illustrate some of the ways to use DAX to analyze and interpret geospatial data within Power BI. However, they only scratch the surface of what's possible. As you master these techniques, you'll be able to explore your geospatial data in ever more nuanced and sophisticated ways.

Happy analyzing!

Deep Dive: Complex Geospatial Analytics Applications

In this section, we will tackle some complex geospatial analytics techniques. These techniques will allow for a deeper understanding of the data and provide more detailed insights.

We'll focus on two applications:

  1. Analysing geographical data along with time-series data
  2. Performing spatial analysis using geofencing

For the implementations, ensure you've the necessary data - a table with geographical locations and a table with time-series data.

1. Geographical Data with Time-Series Analysis in Power BI

Data Preparation

For this purpose, we will use a DAX function to mould our data as per our needs. We assume that your date column is already present in the data.

TimeAnalysisData = 
ADDCOLUMNS ( 
  'Existing Dataset', 
  "Year", YEAR ( 'ExistingDataset'[DateColumn] ), 
  "Month", FORMAT ( 'ExistingDataset'[DateColumn], "mmmm" ) 
)

This will add two new columns: Year and Month for the respective year and month of the date.

Visualization

In Power BI,

  1. Select the map visual.
  2. Add your geographical field to the 'Location' section of the visual (e.g., Country, State).
  3. Add your values (those that you want to analyze over time) to 'Size' in the map visual field.
  4. Then, add 'Year' and 'Month' created earlier in the 'Legend' section.
  5. Remember to use 'Play Axis (PlayAxis)' visual control from the marketplace for interactive time-series data to allow for visualization over a timeline.

Now, the map will perform like a motion chart displaying data over the timeline.

2. Geofencing

Next, we will perform spatial analysis using geofencing. Geofencing involves defining geographical boundaries (geofences) and then performing analysis within those boundaries.

It may be a bit more complex in PowerBI as it does not natievly support geofencing, but it can be achieved by using some DAX ingenuity and pre-processing your data.

Data Preprocessing

For geofencing, you would need at least two datasets:

  1. Geofence Dataset: Dataset containing details about the geofences.
  2. Location Dataset: Dataset containing the details of locations that need to be analyzed.

Before importing the data to PowerBI, preprocess it to have a column that specifies if a location falls within a certain geofence. This could be done using GIS software like QGIS and ArcGIS or programming languages like Python with libraries such as Geopandas and Shapely.

In the Location Dataset, this will create an additional column, let's call it 'Geofence'.

Analysis

Once you have data ready, you can perform many analyses such as plotting, analyzing characteristics of each geofence etc.

A simple DAX measure can calculate the count of locations within a certain geofence:

COUNTROWS('Location Dataset')

Then, you can use the 'Table' visualization and display 'Geofence' along with the measure you have just created. The table now represents the number of locations within each geofence.

Another measure calculating the average of a certain characteristic of all locations within a geofence would be like:

AVERAGE('Location Dataset'[ACharacteristicColumn])

Again visualize this with 'Table' visualization. Drag 'Geofence' into 'Values' along with the measure you have just created. The table now represents the average characteristic of locations within each geofence.

Remember, visualization and analyses will depend on nature of your data and what insights you want to derive.

Executing these steps will give you an in-depth understanding of complex geospatial analytics. Remember, the more data you have, the richer your analytics will be and the better your decision making.

Real-world Geospatial Analytics in Business

The final step in our project involves the practical implementation of a geospatial analytic case study in Power BI utilizing DAX. This case will focus on a hypothetical real estate company that wants to analyze the distribution and sales of their properties located in a certain city.

The Data

Our data consists of seven fields:

  • Property ID: Unique Identifier for each property
  • Price: The selling price of the property
  • Square Feet: The size of the property in sq ft
  • Bedrooms: The number of bedrooms in the property
  • Bathrooms: The number of bathrooms in the property
  • Address: The street address of the property
  • Lat, Long: The geolocation of the property

The file is stored in a CSV named real_estate_sales.csv.

Data Load

First, we need to load the data into Power BI. This would typically have been explained in section "Introduction to Power BI and DAX for Geospatial Analysis."

Data Cleaning and Transformation

Once the data is loaded, we need to ensure that the geographic data is recognized by Power BI. This should have been covered in "Understanding Geospatial Concepts."

Geospatial Analysis

A useful geospatial analysis could involve visualizing the different locations of the properties on a map. This will allow the company to have an overview of properties distribution. This technique should have been covered in "Implementing Basic Geospatial Techniques in Power BI."

propertyMap = SUMMARIZE('real_estate_sales',
'REal_estate_sales[Address]', "Lat", AVERAGE('real_estate_sales[Lat]'), "Long", AVERAGE('real_estate_sales[Long]')
)

Sales Analysis

Sales analysis can be done on the basis of number of bedrooms and bathrooms in the properties.

sales_analysis = CALCULATE(SUM('real_estate_sales[Price]), FILTER('real_estate_sales', 
'real_estate_sales[Bedrooms]' > 2 && 'real_estate_sales[Bathrooms]' > 1))

Enhanced Analysis

To perform enhanced analysis like property size against the price, we can use "Advanced Geospatial Techniques using Power BI."

property_analysis = 
CALCULATE(SUM('real_estate_sales[Price]), 
FILTER('real_estate_sales', 'real_estate_sales[Square Feet]' > 1500))

Visualization

Create a Power BI report to view the geographical presence of the properties and the sales analysis. This will help in understanding the business better.

This piece of DAX will summarize the property locations:

property_location = 
ADDCOLUMNS (
SUMMARIZE ( 'real_estate_sales', 'real_estate_sales[Lat]', 'real_estate_sales[Long]' ),
"count", COUNTA ( 'real_estate_sales[Property ID]' )
)

Then, you can use this new table in your Power BI report to create a map visual.

After creating your report, you can publish it to the Power BI service so others in your organization can see your amazing work.

I've chosen a scenario suited to the tools and capabilities you've learned in the preceding sections of this project. Now, it's up to you to apply what you've learned to your own datasets and challenges! Good luck, and remember to always let your data tell the story.

Optimizing Geospatial Outputs with DAX

Data Analysis Expressions (DAX) is a library of functions in Power BI that are essential for creating advanced formulas. With the use of its inbuilt geospatial functions, we can optimize the output of geospatial analytics.

In this post, we will walk through the implementation of optimizing geospatial outputs using DAX in Power BI.

Creating a Calculate Column

We start by manipulating our dataset by adding a new CALCULATE column using DAX which provides the total sales for each state in our dataset. This new column will be beneficial when we create visualizations.

Total Sales = 
    CALCULATE(
        SUM('Sales'[Order Amount]),
        ALLSELECTED('Sales'[State])
    )

Adding Geospatial Data

To optimize the geospatial outputs, we need to add geographic location details for 'Sales By State'.

We create a new table GeoLocation in this way:

GeoLocation =
    DATATABLE (
        "State", STRING,
        "Latitude", DOUBLE,
        "Longitude", DOUBLE,
        {
        {"Florida", 27.9944024, -81.7602544},
        {"Georgia", 32.1656221, -82.9000751},
        {"California", 36.778261, -119.4179324}, 
        ...
        }
    )

Make sure to list all the states from the Sales dataset

Then, we merge the Sales and GeoLocation tables:

SalesExtended = 
    NATURALLEFTOUTERJOIN('Sales', 'GeoLocation')

This code creates an extended sales dataset, where each entry includes the latitude and longitude of the corresponding location information.

Implementing Geo Allocation

We can use DAX expressions to create a geospatial allocation measure. For example, a geo allocation of total sales by states.

Geo Allocation =
    RANKX(
        ALL('SalesExtended'[State]),
        [Total Sales],,,Dense
    )

Visualization

Using the newly created geospatial dataset, we can create optimized charts, maps, and visualizations. Let's use our Total Sales measure and Geo Allocation to create a filled map.

  1. Select the 'Filled map' visual.
  2. Drag and drop the measure Total Sales to the Value field.
  3. Add State to the Location field.
  4. Use Geo Allocation to define the Color saturation.

The resulting map will visually represent the total sales for each state. The geospatial allocation would be represented by the color saturation.

Through these steps, we can optimize the geospatial outputs in Power BI using DAX. It provides a smooth transition from data validation and analysis to interpretation and visualization.

Common Challenges and Solutions in Geospatial Analytics

This section will cover some common challenges encountered when performing geospatial analytics, as well as their corresponding solutions, with a particular focus on Power BI and DAX.

1. Challenge: Handling Big Geospatial Data

When dealing with a large amount of geospatial data, Power BI can slow down or even crash.

Solution: Use the Optimize function

The Optimize function in DAX can help to deal with this problem by enabling you to only load a smaller, filtered part of the data into memory.

EVALUATE
  CALCULATETABLE (
    'YourLargeDataset',
    FILTER (
        'YourLargeDataset',
        'YourLargeDataset'[YourFilterColumn] > SomeValue
    )
  )

This piece of DAX code will filter only the part of the data where 'YourFilterColumn' has a value greater than 'SomeValue'.

2. Challenge: Mismatched or Missing Spatial Data

Sometimes, the spatial data required for analysis is either missing or doesn't match up with the rest of your dataset.

Solution: Use Coalesce function

The Coalesce function can be used to deal with missing values. This function will return the first non-blank value in a list.

Column = 
COALESCE(
    'YourTable'[YourColumn1], 
    'YourTable'[YourColumn2], 
    ...
)

The Coalesce function will return the first non-blank value it can find amongst 'YourColumn1', 'YourColumn2', and so on.

3. Challenge: Dealing with Incorrectly Formatted Spatial Data

Sometimes, your spatial data is not in a format that Power BI can recognize, read, or correctly interpret.

Solution: Use DAX’s Text functions

DAX's text functions can transform your data into a format that Power BI can work with.

Column = 
  LEFT ( 
    'YourTable'[YourSpatialColumn], 
    FIND (
        ',', 
        'YourTable'[YourSpatialColumn] 
    ) - 1
  )

This code extracts all the text to the left of the first comma in 'YourSpatialColumn'.

4. Challenge: Working with Time-Dependent Spatial Data

Geospatial data analyses often involve time-dependent data like trends over time.

Solution: Use DAX's Time Intelligence functions

These functions can aggregate data over time and perform time-based calculations.

Column = 
    CALCULATE(
        COUNT('YourTable'[YourSpatialColumn]), 
        DATESINPERIOD('YourTable'[YourTimeColumn], 
        MAX('YourTable'[YourTimeColumn]), 
        -1, YEAR)
    )

This DAX formula will count the number of instances of 'YourSpatialColumn' in the prior year.

Please note that every piece of code you will use should be adjusted to your real tables and columns names. Also, some variable changing like 'SomeValue' would require the specific value that serves your case in the best way.

Future Trends in Geospatial Analytics with Power BI

In this section, we will analyze the potential future trends in Geospatial Analytics that can be implemented using Power BI and DAX. We will create a simplified forecasting model using DAX functions and Power BI visuals. This approach will allow us to extrapolate our current data to predict future trends.

Data Preparation

Given that no specific data set was provided, we'll assume we have a dataset GeoData consisting of longitude, latitude, some metric we are studying (e.g., sales, population, temperature), and a timestamp.

DAX Measures

First, let's create some measures using DAX that we will need in the next steps.

Total Metric = SUM(GeoData[Metric])

Previous Year Metric = CALCULATE([Total Metric], DATEADD(GeoData[Timestamp].[Date], -1, YEAR))

Metric Change = [Total Metric] - [Previous Year Metric]

% Change = DIVIDE([Metric Change], [Previous Year Metric])

These measures calculate the total of our metric, the metric for the previous year, the absolute change, and the percentage change respectively.

Future Trend Analysis

One common method for forecasting future data points is by identifying and extrapolating existing trends. This method works best when the data exhibits a consistent pattern over time.

For the forecasting, we will use FORECAST.ETS function, which estimates future points based on existing trend and seasonal information.

Expected Metric Next Year = FORECAST.ETS(
    NEXTQUARTER('GeoData'[Timestamp]),                -- The forecast point
    'GeoData'[Metric],                                -- The values being predicted
    'GeoData'[Timestamp],                             -- The timeline of values
    , , ,                                             -- Optional arguments about seasonality
    SUMMARIZE('GeoData', 'GeoData'[Longitude], 'GeoData'[Latitude])
)                                                      -- The group by clause

Visualization

Lastly, we can visualize this on a map and a line chart:

  1. Plot a map visual with longitude and latitude on location and [Expected Metric Next Year] on Color saturation.

  2. Plot a line chart with [Timestamp] on Axis and [Total Metric] and [Expected Metric Next Year] on Values.

Conclusion

The future of geospatial analysis in Power BI is likely to become even more integrated with traditional data visualizations. We've demonstrated how we can already leverage DAX to carry out calculations that allow predicting future trends. However, as Power BI continues to grow and evolve, we can expect even more sophisticated geospatial analytic capabilities to be introduced.