Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vector Feature Chart Model #5

Closed
BryonLewis opened this issue Jan 22, 2025 · 3 comments
Closed

Vector Feature Chart Model #5

BryonLewis opened this issue Jan 22, 2025 · 3 comments
Assignees

Comments

@BryonLewis
Copy link
Collaborator

Purpose:

A way to connect vector features on a map with charts data that can be displayed over time.

Notes:

  • Would be nice to be able to support any type of numerical data. IE some tabular data and being able to filter that data and convert any rows/columns into a graph that is automatically generated.
  • There may be some visualization options to these fields. I.E you have dates and flow levels inside the data and you want to turn this into a vector data that the client can use.
    • This could maybe be done through a system where the endpoint for vector-tiles allows you to add data from the chart into the vector tile so it can be filtered on and visualized
      • You decide to add the Date and Flow values from the chart data for each vector point and then you can filter by date and have the color be associated with the flow.

Technical:

  • TabularData
    • vectorFeatureId foreign key
    • jsonField, that has multiple tables in a single JSON object with tableName, columns, and then a large array of rows.
      • This allows for multiple tables in an array that can be indexed
  • Endpoints
    • Get a summary for a VectorFeatureId. This summary includes a list of tables with their column headers, the column data types (numerical, boolean, string) and if they are numerical it returns back their min/max values. For categorical string values if it is less than X values it will return an array of the categorical values
    • Graphing Endpoint - This endpoint will take in parameters (multiple columns) and will return back the values so the client can graph them. This would need to support both simple X/Y line graphs, scatter, and maybe multi variable graphs that are comparing multiple similar values.
    • Multi Graph endpoint - Ability to take an area or multiple vector featureIds and graph all of those on a single graph to do comparison of the data values.
    • VectorTile endpoint that includes indexer and values and will create new vectorFeatures for the client based on the indexer that include all the values that are reference. I.E you may use Date as an indexer and use water temperature and water flow as values. This would create a new point/geometry for each date where it has the temperature and flow as property on the field. This means you can then use water temperate and flow to color a point while you slide across time for the data.
@BryonLewis BryonLewis self-assigned this Jan 22, 2025
@BryonLewis
Copy link
Collaborator Author

BryonLewis commented Jan 27, 2025

A bit of a better Idea:

VectorFeatureTableData:

  • Foreign key to VectorFeature
  • Name: name of the table
  • Description - text description of the data that can be blank
  • Columns - JSONField that contains the columns of the data with a description of each column values
  • Summary - JSONField that is a summary of the columns (min/max, type, unique values)

VectorFeatureRowData:

  • Foreign key to VectorFeatureTable
  • Row Data is single row of data

Endpoints:

  • TableSummary - gets a table summary for all features in a map layer. I.E it will find all tables that have a similar type, parameters and data
  • FeatureGraph - Returns data for a specific table/tables in a format that D3 can be used to graph the data when selecting a feature.
  • GenerateLayer - generates a new layer where the vector features merges the selected table data and creates a new vector feature for each filter value (typically will be a date/time/year) and will create an automatic geojson filter for this field.
  • VectorTileTab - Similar to generate layer except it does it live for a vector tile generation. It creates a new endpoint for vector generation that takes in an argument for table and filter value and will create new vector features for each model.

@BryonLewis
Copy link
Collaborator Author

I've created the models and a view of the endpoints, the next section will be to create a way to utilize this in the Front-end Code either through creating charts on click or being able to colorize data using a step system based on filtering.

@BryonLewis
Copy link
Collaborator Author

closed in #16

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant