ArcGIS Online Webmap: Summarize values of overlapping polygons in quantitative symbology - arcgis

I am attempting to create a dynamic webmap to display varying values across a grid of polygons. Within each grid cell there are multiple overlapping polygons (grid cells) each with a unique value. I would like aggregate these values to give a total value for each grid cell which relates to the sum of each of the overlapping values. These would then be displayed using a quantitative color gradient.
I would dissolve this layer and sum each overlapping polygon's value and display it as a flat single feature per cell, however I have also added the ability for users to filter specific values out relating to a descriptive attribute within the table.
The approach I have tried was to
Create a flat empty grid with single cells.
Took the centroid of the each overlapping polygon.
This left me with a point layer of overlapping features (value) and a polygon layer of a grid with only an ID code.
Within the WebMap builder I have set the symbology of the grid using the Arcade expression:
var centroid = FeatureSetByName($map,"centroid_values")
IIf(Contains($feature, centroid), Sum(value), 0)
This aims to sum the "value" of the each point contained within the single empty grid cell and display it. This would mean if the user was to filter the points based off an attribute the symbology would be dynamic.
However, I am running into the error:
Parse Error:featuresetbyname is not available
Is it possible to incorporate a separate featureset from the map into the symbology expression for a layer?
The featureset functions appear to be greyed out an labelled 'Not Available' within the function list.
Any other approaches to overcome the problem outlined above would be greatly appreciated. I have experimented with joins however the number of records means it is extremely slow to process and is not dynamic when the user filters out records.

Related

How to make a dynamic tableau x-axis that gets changed when a different dimension is selected as a filter?

I am trying to create a report for my stakeholders where we want to check the distribution by values of column1, column2 and likewise. While I could make different tabs for each column, I apparently have 55 columns (all numeric and I will be making bins for them) that the user want to toggle between for comparison on distributions - and coming up with an insight like column 43 is more skewed than column19.
Pet example:
1. Suppose I have data in below format:
2. And I want to create a tableau filter enabling the user to toggle between continents and countries, and get their individual distributions in the same view. I want to keep the measure consistent (population in this example). Something like below:
3. and generating distribution by continent when continent is selected and by country when country is selected
I know if I had wanted to toggle between different measures for the same dimension, then I needed to create parameters, but this is opposite to it (same measure but different dimensions) and I am not able to figure out.
Any comment/help will be much appreciated.
I'm afraid you'd still need to use parameters. There is no equivalent of Measure Names for dimensions so you'll have to create a parameter (I called it Dimension Switch) with Continent, Country, etc. as options and a calculated field that will look something like this:
CASE Dimension Switch
WHEN "Continent" THEN [Continent]
WHEN "Country" THEN [Country]
END
This calculated field will take on the values of whichever column you have selected in the Dimension Switch parameter.

MDX - Display the labels/values for dimensions for this MDX query

Usually I display a value for dimensions by using the CurrentMember.Value/caption as as an alias.
For the following query this breaks with an error along the lines of
'The hierarchy [Measures] appears in more than one axis or in an axis/axes and a slicer too'.
Which I understand.
So how do I edit/expand the query such that I see the book values on rows (normally achieved with
'WITH Member [Measures].[Book_Label] AS [Book].[Book].CURRENTMEMBER.MEMBER_CAPTION'
and the column dimension values along the top?
(Excel image below, values white color'd out as on client site.)
SELECT
NON EMPTY ([Ccy].[Ccy].[Ccy])
ON COLUMNS ,
NON EMPTY
([Book].[Book].[Book])
ON ROWS
FROM [TraderCube]
WHERE
([Date].[Date].[ALL].[AllMember].[2019-12-12],[Measures].[JTD.SUM])
I have made more progress however this comes out staggered duplicating the row / book label at each repeated currency.
Does anyone know how I would:
1) Get the currencies along the top?
2) Have one row / book label per row?
WITH
Member [Measures].[Book_Label] AS [Book].[Book].CURRENTMEMBER.MEMBER_CAPTION
SELECT
NON EMPTY (HIERARCHIZE(([Ccy].[Ccy].Members, {[Measures].[Book_Label],[Measures].[JTD.SUM]}), POST))
ON COLUMNS,
NON EMPTY (HIERARCHIZE([Book].[Book].Members, POST))
ON ROWS
FROM[TraderCube] WHERE ([Date].[Date].[2019-12-13])"
As an update for anyone who comes across this thread/question, for me I am writing a C# layer that translates simple user words and constructs MDX. I query the remote cube and then I return a 2D array. Up until now I constructed the headerRow etc myself and I returned the row dimension labels using the MDX itself.
I have now discovered that metadata is available on the AdomoClient libraries I am using.
This tutorial has inspired me:
https://www.codeproject.com/Articles/28290/Microsoft-Analysis-Services-2005-Displaying-a-grid
It's not a direct answer to my query of getting all of the labels in MDX but it will mean I can construct my headerRow (may be more than one row as seen in Excel pivots) and populate my row labels differently using the positions property of each Axes on the set (Axes[0] is columns, Axes[1] is rows) and the Positions property has a member property too.

Spotfire calculated column based on filter

I want to create a calculated column that is equal to the percent of the total of the previous column, but only for the rows that are selected.
For example, the two columns below show rows where I've filtered for only the rows of interest. The sum is accurate, but I want the percent of the total to be only out of sum of the currently selected rows rather than the absolute total (which is how it's currently being calculated). I want the percent of the total to dynamically change depending on what is filtered in the data table. Is this possible?
Image of my 2 columns:
I know spotfire somehow calculates this becuase when I insert a bar graph using % of Total(SumofComponents) the ratio is only out of the current total.
Image of my bar chart:
much like in programming, Spotfire has a rough concept of scope. and unfortunately, calculated columns are above filters in terms of scope; they have no concept of what is and is not filtered.
visualizations themselves, however, do*!
what you can do in this case is to put your expression on the Y axis (it looks like you've done this), and it will respect your selected filters*.
*caveats: there are a few ways that filtering can be negated on a given visualization:
Properties>>Appearance>>Show shadows indicating the unfiltered data. this option shows a grey bar that represents the data hidden by whatever filter selection was made
Properties>>Data>>Limit data using filterings. these options allow the viz to use separate filtering sets ("Filter Schemes" as they're called in Spotfire) or none at all (to ignore filters completely)
Properties>>Subsets. by default there are three subsets: "All Data" which ignores filters, "Not in current filtering" which inverts the filter selection (e.g., if you filter a boolean column to show only TRUE, this chart would show only FALSE), and "Current filtering" which is the default behavior. you can check the online help for additional subsets that you can add.

How to display filtered data rows as a tooltip in Tableau Public?

Noob here, I have a table with different entries (rows) per different (repeating) regions.
I'd like to be able to display the data rows filtered - matching that particular region thanks - so I get those particular fields related to each region as a tooltip on a map. (I know how to build the map)
Thank you
Just dragging the fields you want to Details or Tooltip is not doing the trick?
Putting a measure on a shelf (other than filter shelf) includes that field in the visualization query results -- i.e. applies the chosen aggregation function to yield an aggregate result value for each partition of the data (as specified by the unique combination of dimensions)
Putting a dimension on a shelf (other than the filter shelf) also includes that field in the query results, but since the dimensions define how data rows are partitioned, it can affect the level of detail of the query. You'll notice this often as suddenly getting many more marks in your visualization after you add a dimension to a shelf. If you are familiar with SQL, dimensions define the fields that follow the GROUP BY keyword.
EDIT
Thanks for the addition, #AlexBlakemore. I've never said dragging a dimension would not work, only that it wouldn't work as the OP wanted it to (basically the same as you're saying).
And though everything you said (above) is true, it's particularly not exact when it comes to maps. Yes, dragging a dimension will further partition the data, but it will not create additional marks on a map (unless it has also geographical properties). Rather, the tooltip will get the first occurrence of that dimension, and display data for that only. For instance, if you drag "Product" to details, and the possible values are "Bread", "Coffee" and "Milk", it will probably just show "Product: Bread", and the measures for "Bread" only. So yes, it will partition, but no, it won't create additional marks.
Back to OP problem. What I believe you want is a tool tip with all values of the dimension (in my poor example you'd like to see "Bread, Coffee, Milk"). Tableau does not have functions to aggregate strings yet, so it's hard to do so.
What I would suggest is to create a separate sheet, and just drag the dimensions and measures you want to rows. Then put it side by side with the map on a dashboard, and use the map as a filter. Then, when you click on a country/region/city, you'll see the data of that region on the other chart.
Refer to: http://kb.tableausoftware.com/articles/knowledgebase/creating-filter-actions-dashboards
or https://www.tableausoftware.com/learn/tutorials/on-demand/authoring-interactivity

How to pivot a line graph in SSRS

I have the following dataset:
Which creates the following line graph with Roletype as the category group and experience as the value:
How can I pivot this graph so Roletype is on the y axis and values are on the x axis?
I think you are actually using an area chart rather than a line chart, but both function the same way. The y-axis measures a numerical value. You indicate what is on the y-axis by placing something in the values area. If you use a field that isn't a number, it's going to try to sum it or count it or aggregate it in some way. You should use a different chart type to effectively display non-numerical data (see this article about choosing the correct chart type). If you want to assign values to your role-types and then display the description on the axis you could do that. I wouldn't necessarily recommend it as an effective way to communicate your message.
To show use the values for the y-axis, add the role-type values field to your dataset. Use that in the values for your chart and aggregate by avg. Follow the instructions in the accepted answer here. You basically set the number type for your vertical axis labels to custom and then add the list of possible values. This only works if you know exactly what values you are expecting.