EarthSim icon indicating copy to clipboard operation
EarthSim copied to clipboard

Adding elements to the map via table

Open kcpevey opened this issue 7 years ago • 12 comments

I'd like to add elements (we'll just say points for now, but in the future, this will include polys/paths) to the visualized map via input to the dynamic table. What would be the process for accomplishing that?

My initial thinking is that I'll need a button to "add row". But how that button should link into the table stream is not clear. The table stream self.poly_table = DynamicMap(self.load_table, streams=streams) is linked to the load_table callback. If I force an entry, won't that break the dynamic mapping?

Its almost like the current setup is that the dynamic table linkage is a one way street, always listening for more information from the the map. But I need this to be a two-way street. I need the table to listen for information from the map and I need the map to listen for information from the table. Does that make sense? Is that possible?

kcpevey avatar Apr 20 '18 15:04 kcpevey

This may be further complicated by the fact that when we add a new row, it should be empty. I'm not sure if an attempted drawing of an empty element will cause problems.

kcpevey avatar Apr 20 '18 15:04 kcpevey

Its almost like the current setup is that the dynamic table linkage is a one way street, always listening for more information from the the map. But I need this to be a two-way street. I need the table to listen for information from the map and I need the map to listen for information from the table. Does that make sense? Is that possible?

In future we can probably have a widget button to add rows to the Table yes, but that work will probably have to wait on the simplified PolyAnnotator.

philippjfr avatar Apr 20 '18 16:04 philippjfr

So the required work is at a level deeper than the annotators themselves? i.e. this isn't something that could be done for the point annotator (only) in its current state? I'm ok with waiting, I just want to make sure I understand.

kcpevey avatar Apr 20 '18 16:04 kcpevey

No, the work is likely at the Annotator level, but as discussed elsewhere, it doesn't make much sense to build stuff on PolyAnnotator which we've already decided should be hugely simplified. That simplification is waiting on changes/features in HoloViews though.

philippjfr avatar Apr 20 '18 16:04 philippjfr

Can I get an update on this? Seems like it was waiting on something in Bokeh?

kcpevey avatar Aug 31 '18 15:08 kcpevey

It doesn't seem like there's going to be much progress on this at the bokeh end any time soon, but once we are using panel I think we can easily combine the tables with some buttons to add and delete rows in the table.

philippjfr avatar Aug 31 '18 15:08 philippjfr

@philippjfr will check on the Bokeh issue/submit a new one

kcpevey avatar Sep 20 '18 15:09 kcpevey

We had an internal issue about this on the private repo, which references the relevant bokeh issues: https://github.com/ContinuumIO/EarthSim/issues/137

philippjfr avatar Sep 20 '18 15:09 philippjfr

I can do this with panel using a button to add a row and redrawing the table.

@philippjfr Unless there were plans to implement this at a deeper level, then I suggest closing.

kcpevey avatar Apr 22 '19 19:04 kcpevey

We did discuss adding this functionality directly to bokeh tables and opened an issue https://github.com/bokeh/bokeh/issues/7988. No progress on that front though and it's unlikely to happen unless we explicitly prioritize it.

philippjfr avatar Apr 23 '19 10:04 philippjfr

I see this as necessary functionality for many workflows for recieveing input. We will need the ability copy and paste data into the bokeh table also -- automatically expand (add the necesary rows) to contain the new data.

Some applications (i.e. polygons) will require the table order to indicate relationship of the data entries. Therefore, being able to insert an empty row at the beginning, in the middle, or the end is necessary. Likewise, deleting specific rows or multiple rows, is necessary also.

+1

kajiglet avatar Apr 25 '19 15:04 kajiglet

From the internal issue:

  • [ ] Bokeh #7988: Add ability to insert new row in DataTable
  • [ ] Bokeh #7762: Add support for copy and paste into DataTable

kcpevey avatar May 06 '19 18:05 kcpevey