keplergl / kepler.gl

Kepler.gl is a powerful open source geospatial analysis tool for large-scale data sets.
http://kepler.gl
MIT License
10.14k stars 1.71k forks source link

Interactive Data Table #1573

Open ngodber opened 2 years ago

ngodber commented 2 years ago

Is your feature request related to a problem? Please describe. A common paradigm in GIS solutions is to allow the user to select features on a layer and view the properties in a table. That table generally allows the user to order by different columns and supports export those points to csv or wkt etc image

The frustration is that when a User is visualizing their data once they've gained some insight and found an area of interest they aren't able to translate that learning into further action. You cannot further interact with the data in ways that allow you to capture that learning - select and export features of interest.

Describe the solution you'd like The has the ability to select using polygon or square as is currently the case and include option to pop up table showing the properties of the selected points. Table would also have functionality to order by columns and to export rows to text.

Describe alternatives you've considered The closest functionality is the tool tip. However this is feature by feature and still gives not ability to actually save this data out.

ngodber commented 2 years ago

@heshan0131 is there a major roadblock to this functionality that I am unaware of?

heshan0131 commented 2 years ago

I think we can achieve this by adding 2 smaller features:

task 1. Enable filtering of polygon layer with the drawing tool (it currently only supports point layer)

Screen Shot 2021-08-25 at 1 26 22 PM

task 2. Add a toggle to allow showing filtered data in the data table.

Screen Shot 2021-08-25 at 1 27 49 PM

If we can have someone help us on task 2, I would be happy to work on task 1 and make this into production :)

ngodber commented 2 years ago

Hi Shan,

Thanks for replying! First of all, I just want to express how much of a massive fan I am of everything you guys have done first at Uber and now at Unfolded/foursquare. Some of your data visualizations border on art.

I'm happy to commit some time to implement 2. Whilst on the topic would there be interest in replacing the table with something more features. Googling indicates that https://github.com/Autodesk/react-base-table has good support for large datasets and includes some nice features out of the box. Its also MIT so compatible with Kepler license.

heshan0131 commented 2 years ago

Hi Shan,

Thanks for replying! First of all, I just want to express how much of a massive fan I am of everything you guys have done first at Uber and now at Unfolded/foursquare. Some of your data visualizations border on art.

I'm happy to commit some time to implement 2. Whilst on the topic would there be interest in replacing the table with something more features. Googling indicates that https://github.com/Autodesk/react-base-table has good support for large datasets and includes some nice features out of the box. Its also MIT so compatible with Kepler license.

Sure that table component looks great. What I am interested is the ability to Select rows in side the table component. The current table component doesn't support that.

To add a toggle in the data table to should filtered data. you will first need to call applyCPUFilter action (see how it is used in ExportDataModal), when called, dataset will be filtered, and you can get the filtered data by accessing dataset.filteredIdxCPU, it's an array of indexes of filtered data.

ngodber commented 2 years ago

Yes, being able to select data is key. My concern was on data quantity. Given that that is where the *.gl stack is aligned, I don't want a table component that chokes on large quantites of data. Pagination may help, but the issue as I see it is that you would need to get clever around maintaining selection between pages. So better to have a component that can simply handle a large number of rows. If you know of a better option, please share.

ngodber commented 2 years ago

@morphoix I see you recently committed to Kepler. Would you be interested in being funded to implement this?