First, many thanks to the Scada-LTS team for making this excellent tool available.
I have successfully implemented the functionality of a Scada system by testing two virtual data points (a binary data point representing valve status and a numeric data point representing fluid flow) in a Graphical View panel but in a Synoptic panel populated with elements drawn in Inkscape, I am unable to view data values. I carefully adopted the object ID convention described in the Scada-LTS tutorial video and although graphical objects assigned SLTS_valve_1_background_left' and 'SLTS_valve_1_background_right'change color as expected, default text in the text box with ID 'SLTS_valve_1_value' disappears when the Synoptic Panel loads. The contents of a text box with ID 'SLTS_point_1_value' associated with the numeric data point also disappears and is not replaced with live data.
I am running Scada-LTS on a Windows 10 computer in docker containers and have tried Microsoft Edge and Firefox browsers. Has anybody else experienced this problem and come up with a solution, or did I miss something in the tutorial?
Related
On my Main tab in my Anylogic model I have a GIS Map. In another tab (from one of my agent populations), I have a graph (created from a time measurement within this agent). Whenever I run the model, the graphs of those agents are shown within the GIS Map (the same way the agents are placed on the map), as can be seen in the figure below. However, I want the graph to be shown next to the GIS Map (like the pyCommunicator and other parts shown above the map). Whatever I try (I placed the graph outside/inside the frame in the agent's tab), it stays within the GIS Map when running. Does anybody know how to solve this problem?
Easier way is to create the graphs directly in the Main agent. For that, you should reference to the specific instance of the Terminal agent. For example terminals(0).end.distribution.
You also need to drag and drop Terminal agent into the Main.
I saw in version 3.00 there is something called setDataCleaningThreshold , Can you tell its benefits , I think it's for faster loading of progressive charts.
const dcThreshold = xVal - 100;
lineSeries.setDataCleaningThreshold(dcThreshold);
AreaRangeSeries.setDataCleaningThreshold(dcThreshold); // not working
But it's not working for Area range series.
Also there is setMaxPointCount in Area range Series , what is the difference between both ?
My charts are progressive and I want to clear the charts that are out of view and make the charts faster.What is the best way ? Can I use Dispose method ?
Also , can we drag the chart by left click + mouse drag. . I saw something like API for Axis mouse and touch events is released.Can you tell what can be achieved with this.
(right now its right click + drag).
it's not working for Area range series.
setDataCleaningThreshold is new API that will be slowly introduced to existing series. With v3.0 it is only introduced for LineSeries and its derivatives (like PointLineSeries).
To prevent confusion, please refer to official API documentation to see if some method is supported - for example if we look at AreaSeries, it is not part of the API.
Also there is setMaxPointCount in Area range Series , what is the
difference between both ?
setMaxPointCount and setDataCleaningThreshold exist for the same purpose, and effectively achieve the same things, but they are based on slightly different ideas.
setMaxPointCount configures automatic data cleaning by specifying amount of data points to retain at the "head" of data.
setDataCleaningThreshold configures automatic data cleaning by specifying a coordinate on progressive axis. All data points that are "behind" this coordinate can be cleaned whenever convenient. This configuration is slightly preferred over "max points count" as it is more convenient for the rendering engine, and it also behaves slightly more logically - if you apply the fit() operation by dragging to top-left in chartXY with left mouse click, the axis will stop at data cleaning threshold, instead of showing all data including the data behind cleaning threshold.
Both of these methods will be supported for the time being and there should not be major differences between using either, so I recommend use whichever you feel more comfortable with.
Eventually the data cleaning configuration will settle down to a simpler API, but now we're still feeling how different users are using the library, and how we can optimize the performance best - so the API is a bit messy (as in, there are 2 methods for same purpose).
My charts are progressive and I want to clear the charts that are out
of view and make the charts faster.What is the best way ?
For AreaSeries setMaxPointCount is the only automatic option.
Please see the updated documentation on the method to learn more.
You can also implement manual data cleaning using dispose method, as you suggested.
However, please see if automatic data cleaning works for you first.
I want to calculate and display the average scroll depth in Data Studio from analytics.
I’m looking to get an average scroll depth in Studio. I’ve got the 10%,25%, etc scroll depth data coming in, but I now need to be able to calculate the average scroll % from this data.
To calculate the average scroll depth:
multiply the scrolled threshold by the number of events (10x500) + (20x400) + (30x475) +(40x300) + (50x200) + (60x100) +(70x75) +(80x60) + (90x20) + (100x10)
Then, take that total divided by the total number of events. 500 + 400 + 475... etc
Because I can’t reference cells in Studio I can’t get it to work. I’ve also tried Google Sheets, which does work to do the calculation, but then I can’t use Data Studios filter to provide a specific page path?
I'm thinking that perhaps the calculation will need to be done at data source, but I am not sure how to reference a 'cell'?
Data Studio doesn't work based on a concept of "cells", it works based on a concept of "fields"—which are basically properties of the data source. Similarly, you don't have "formulas" per se, but rather "calculated fields". These fields can be created either at the chart-level (single-use, but doesn't require permissions to modify the data source) or in the data source (reusable across many charts, requires permissions to modify the data source). Most fields also have an aggregation type, which tells the report how to aggregate it in charts by default (e.g. Sum or Average).
When you either edit your data source and hit "Add Field" or the option with the same name under the "Add metric" or "Add dimension" menus on a chart, you'll be presented with a box to input the formula. To access a field, just type its name (of if you're in the data source, select it from the list on the left). The editor will also typically give you an auto-complete list below your cursor based on what you're typing. Once your entry matches a field, it will get a highlight box around it (the color is based on the type; green = dimension/string,blue = metric/number). The functions available are sort of a mash-up of something between what you'd expect in Google Sheets and in a SQL query, but with more constraints on when you're allowed to use certain functions.
The documentation for calculated fields is pretty simple, so I'd recommend starting there before you try to do too much heavy-lifting in Data Studio. Because of constraints in Data Studio's data model, you'll often find that you need to create separate calculated fields for different parts of the formula, and then combine them in a new calculated field. I'll warn you that the error messages in the field editor aren't super helpful sometimes, so you may need to re-read the documentation for the functions and field types you're working with to ensure you get a valid result.
If you're running into problems, including the field names and values that you need in your calculation may help, including the source of the data (are these GA events?). The more details you give, including what you've already tried, the more helpful we can be. Also, make sure to read the docs first to make sure you have a good handle on the product you're using and the terminology the community is most likely to understand.
I have been troubleshooting this issue where I click on datapoint in geographic map and NOTHING appears. However, all other datepoints work as expected
Troubleshooting steps
I deleted and re-created the tableau map
I removed the offending datapoint, and all other datapoints worked
I renamed the address of the datapoint, same problem
But then, I changed the latitude and longitude of the data-point and it worked.
Now when I revert to the correct latitude and longitude of the data-point it doesn't work.
Why on Earth doesn't it work?
Is there a certain way I should format longitude and latitude? This is how I formatted it:
Please please please help. I've been working on this all day.
This is screenshot of it working, when I select location from drop-down
This is screenshot when I select data-point from map and it DOESN'T WORK.
Notice how data at the bottom is BLANK, as if nothing is selected.
But if I select any other data-point on map it works
Update
Proof of concept is here,
Notice when you click on Eat at Joes on map, the data display is blank, but if you select Eat at Joes from dropdown, then it works
Another update
If I go to dashboard, do rectangular select, this is what I get
If I go to original map and do rectangular select, I get this. It says 64 marks, 1 row by 1 column
And if I use quick filter, select Eat at Joes, it displays the data, including the name Eat at Joes
But if I hover over or select 'Eat at Joeson the map (not the drop-down), the name in the dashboard saysNoneinstead ofEat at Joes`.
And this happens to all data points that I hover over.
I uploaded latest workbook here
Update after calculated field
I dragged Cal_Loc to Details and it is aggregate (I am unable to change to Dimension) and not appearing in drop-down of dashboard panel.
However on lower left corner of Maps screen, it says 5 marks even though I see 4, which is still quite unsettling ...
There are two problems.
The first is that you're using ATTR(). Instead of putting the fields of interest into Tooltip as attributes, put them into Detail as dimensions. Filtering on an attribute is tricky (that *'ll get you into all sorts of trouble). For filtering, dimensions are usually the way to go.
The second is that you have lat/lng in the map as dimensions. Try changing them to a measure. If your dimensions (Location, Type) can uniquely identify every point on the map (and now that you've made them dimensions and not attributes, they can), then you can have the lat/lng averaged.
Your title problem is a known issue with Tableau. They've acknowledged the problem for about two and a half years now, but there's no fix in sight. Behavior with putting dimensions in titles is very inconsistent (a quick search through the Tableau forums reveals a pretty shocking number of people with your exact issue). I couldn't find a solution to your problem, but here's a hacked together one specific to your situation.
Make a calculated field:
IIF(COUNTD([Location]) > 1, 'Multiple Locations', ATTR([Location]))
Then replace [Location] in your title with that field. It just checks to see how many locations are present in the partition. If there's just one, it uses ATTR([Location]), which we can safely assume will return the name of a single location and not a "*". Otherwise, it returns "Multiple Locations", which you can obviously adjust to fit your needs.
I have been interested in map reporting, so I wanted to create a map report with drill down functionality, so basically created two reports as follows:
a) Main report based on SQL Server Spatial data for showing US States wide sales
b) Drill down map report based on ESRI shapfile for showing US Counties sales for the selected state
I downloaded the US Counties ESRI shapefile.
Once I was done with the reports, I tested the map with drilldown functionality. I previewed the main report, hover the mouse over Texas and I don't see the counties for Texas state. I see only a map of the US with tiny dots.
So, I am not sure what I missed. I chose County Name column from the spatial data and also the county name from the analytical dataset. Is it the ESRI shapefile?
Please advise.
To my knowledge SSRS does not support 'hover over' features only an 'action' feature. The action can go to a hyperlink, go to a report, or go to a section. To do a drill down for a report, even if it is geographic you need to have a reference to something you can pass to something else. I recently did something similar to what you are asking though. You can make a 'subreport' that dynamically gets created from a geographic data type that represents states. What I did:
I downloaded a program that takes Census shape files and puts them into a SQL database:
http://www.sharpgis.net/page/sql-server-2008-spatial-tools.aspx
I got a shape file of the counties of the US from the Census.
I created a database called 'Spatial'
I created a table and inserted data into it from step 1's app called 'Counties'
I created a generic US map as my 'Main' report, using the geographic options for the US.
I created a subreport of a map type but chose the spatial data wizard. The options are not that important to get started but HOW you make the image. This report gets it's data from the 'geographic' column of the table I made so the query would be like this(ensure to have a datasource go to the Spatial Database):
Select StateName, Counties, geog(geographic type)
from UsCounties
where StateName = #State
The report when done looks like a blob, because it is created at run time, not statically. You can 'preview' it and pass in a state like 'OR' or 'WA' from a variable that should be created called 'State'. If it was not auto created you may do so and make it a 'Text' variable. It will display the state shape if it was set up correct.
You may go back to the report in step 5 and then go to the 'Polygon Properties' of the layer you created.
Select the 'Action' pane on the left. Choose 'Go to report', specify the sub report you created, the report will want a variable match for 'State' the generic US state has an 'Abbreviation' that corresponds to the state two digit code.
Now you should be able to run the main report and when you click anywhere in a state it will 'drillthrough' to a report that is created at runtime from the spatial database. This is vector based so it is fairly quick depending on your hardware hosting your machine and how much data you show.
Keep in mind that with SSRS it is hard to make it have some 3d features and hover over for some reason is completely ignored for objects but is relegated to only 'tooltips' which you can load up with functions to give text and numbers but not much more. There is a hack I wrote in another place of how you can use javascript to pop out a window, but under the hood you are really just doing a drill through presented differently.