-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
GNIP - Add table join functionality to GeoNode #1915
Comments
+1 |
+1, this would be really useful |
+1, this would be really great for geocoding global "by country" datasets, such as indicators, foreign assistance, programs, etc, against country polygons. Also, I would add a UI for identifying unmatched rows somewhere even if the errors need to be corrected offline. We should also look into leveraging Foreign Data Wrappers for OGR (https://github.com/pramsey/pgsql-ogr-fdw) to allow users to link a local stats table to a remote polygon file (or vice versa). |
The plan is to have the status endpoint return a potentially truncated list On Tue, Jan 13, 2015 at 9:27 AM, Humanitarian Information Unit <
|
+1 on functionality, as this opens the door to alot of use cases:
Main concernThe concern as @state-hiu mentioned would be how failed ref (no matches) or conflicts (ex 1 geometry 3 rows of attributes) get resolved as clean one-to-one joins by attribute will be the rare case if this is to be worth its weight in code. Would it support a user in session manually relating fields? Smaller concerns
Overall think this approach could solve alot of the two way data binding needs projects have for "linking/syncing" existing remote systems/services as it could simplify approach to simple export/ingest set to a scheduled refresh vs more complex/dynamic syncing approaches (i.e. via REST API/Services) |
@capooti do you think we can work together to get this ready for the first 2.5 in about a month? |
I am pretty scheduled but I will try to work on this. On Wed, Jun 15, 2016 at 1:42 PM, Jeffrey Johnson [email protected]
Paolo Corti |
+1 this is exactly what we need for uploading ABS stats and joining to existing geometry. Suggest initially it handles join errors simply by reporting them (with row number and key value) as they are encountered, but continues on regardless (using only the first row of 'conflicts' -- multiple matches). Show option to cancel the join while in progress, and save or delete the resulting layer on completion. Present error list in a table so it can be easily scraped back into Excel etc for remediation. |
Jonathan, you can try out my branch, we didn't get it in for 2.5. It still On Wednesday, August 31, 2016, Jonathan Doig [email protected]
|
+1 this would be an epic feature!! :) |
@jj0hns0n: where can I find your current branch ? |
+1, would really appreciate this feature :) |
@afabiani why closed? |
4 years old, no real interest expressed and the proponent abandoned the project since almost 2 years. No one will work on this. As PSC we decided to remote older issues and obsolete GNIPs. |
Overview
I'd like to propose a new set of features for GeoNode 2.5+ that allow a user to upload tabular data to a GeoNode instance and have that data table joined with an existing GeoNode Layer to create a new layer. This work will be funded by @cga-harvard and I plan to work on it over the next few weeks before the 2.4 final sprint and hope to merge it into master after the 2.4 release.
The basic idea is to leverage PostgreSQL and PostGIS to provide this functionality and create materialized views and use GeoServer only to configure the materialized views as GeoServer layers using gsconfig.
GeoNode currently allows users to upload CSV files when the GeoServer importer is used, but this is only for CSV files that contain latitude and longitude fields.
This proposed functionality would be initially used to allow users to map things like statistics that are gathered at the zip code, fips code or census block level.
Proposed By:
@jj0hns0n (to be funded by @cga-harvard)
Assigned to release:
2.5+ (Should be merged to master after 2.4 final)
State:
For Initial Discussion
Motivation:
@cga-harvard has a requirement to allow users to upload tabular data into a GeoNode instance and Join these uploaded datasets to existing layers already in the GeoNode using matching fields.
This kind of functionality has long been available in Desktop GIS software and is a very basic and key GIS use case. Some links are included below that describe how this works in Desktop GIS.
Proposal:
It is proposed to create a new contrib module (potentially geonode.contrib.data) to provide this functionality. This module would contain the following:
It is proposed to develop this functionality by using PostgreSQL and PostGIS directly to create the joined tables rather than relying on GeoServer for the data import. The basic technical workflow would be as follows:
Use cases:
Issues:
Testing:
As part of the implementation, a thorough and rigorous test suite will be developed that exercises this functionality using various sets of tabular data and geometry layers. It is expected that this test suite will be used to demonstrate bugs encountered with new datasets and to verify their fix. The rigour of this test suite will be the key to the success or failure of this module when used in the real world.
Alternatives
Do nothing. GeoNode does not currently provide this functionality. Users are currently encouraged to create joined layers using a desktop GIS and to upload them to a GeoNode. This is problematic insofar as it requires extra tools and steps that may be too complicated for a user who simply wants to upload and map some tabular data and also creates a duplicate copy of the geometry data which is both inefficient from a storage standpoint and also implies that these derived data layers will not reflect changes to the original geometry data.
Feedback
The text was updated successfully, but these errors were encountered: