Converting Shapefile to GeoJason and Plotting using "GeoJasonDataSource"

Can some one please help me out with this question. I am stuck.

I am trying to convert New England Shapefile to the latest standard of Geo Jason and then plot the shape file.

http://stackoverflow.com/q/40197793/7058682

from itertools import chain as ch

from bokeh.io import output_file, show

from bokeh.models import (

ColumnDataSource,

Range1d,

HoverTool,

LogColorMapper

)

from bokeh.palettes import Viridis6 as palette

from bokeh.plotting import figure

from bokeh.models import GeoJSONDataSource

from bokeh.tile_providers import CARTODBPOSITRON

import shapefile

import json

I am trying to convert shape file into geo jason latest standard file here

def geojson_create(file_name):

reader = shapefile.Reader(file_name)

fields = reader.fields[1:]

states = set([record[1] for record in reader.records()])

#print states

field_names = [field[0] for field in fields]

buffer =

for sr in reader.shapeRecords():

atr = dict(zip(field_names, sr.record))

geom = sr.shape.geo_interface

#a = [list(x) for x in y for y in geom[‘coordinates’]]

b = list(ch(*geom[‘coordinates’]))

a = [[list(x) for x in b]]

#print a

geom[‘coordinates’] = a

buffer.append(dict(type=“Feature”,

geometry = geom,

properties = atr))

#print buffer[0]

with open(r’newengland/NEWENGLAND_POLY.json’, ‘w’) as geojson:

geojson.write(json.dumps({‘type’: “GeometryCollection”,

‘features’: buffer}, indent=2) +‘\n’)

return r’newengland/NEWENGLAND_POLY.json’, states

returns the location of json file and a list of states in new england

file_name = r’newengland/NEWENGLAND_POLY.shp’

geoJson_file, states = geojson_create(file_name)

geo_source= GeoJSONDataSource(geojson= json.dumps(geoJson_file))

gets the geo json data for use by Bokeh

x_range = Range1d(start=-15473429, end=2108550)

y_range = Range1d(start=-6315661, end=7264686)

p = figure(tools=‘wheel_zoom,pan’, x_range=x_range, y_range=y_range, title=‘title’, width=900, height=450)

p.axis.visible = False

p.circle(x=‘x’, y=‘y’, size=9, fill_color=“#60ACA1”, line_color=“#D2C4C1”, line_width=1.5, source=geo_source)

#p.add_tile(CARTODBPOSITRON)

#p.add_tools(HoverTool(tooltips=[(“name”, “@name”),(“(Long, Lat)”, “(@x, @y)”),]))

output_file(“geojson.html”)

show(p)

I am trying to implement this bokeh example(http://bokeh.pydata.org/en/latest/docs/user_guide/geo.html#userguide-geo). The first section of the code is trying to generate a geo json file from the shape file available at (http://www.mass.gov/anf/research-and-tech/it-serv-and-support/application-serv/office-of-geographic-information-massgis/datalayers/newnglnd.html)

I get the following errors when I execute this. Can someone help me out ?

INFO:bokeh.core.state:Session output file ‘geojson.html’ already

exists, will be overwritten.

ERROR:/Users/anaconda/lib/python2.7/site-packages/bokeh/core/validation/check.pyc:E-1001

(BAD_COLUMN_NAME): Glyph refers to nonexistent column name: x, y

[renderer: GlyphRenderer(id=‘7f115015-1ed2-4f2d-8507-85556958d5b9’,

…)]

ERROR:/Users/saadsyed/anaconda/lib/python2.7/site-packages/bokeh/core/validation/check.pyc:E-1001

(BAD_COLUMN_NAME): Glyph refers to nonexistent column name: x, y

[renderer: GlyphRenderer(id=‘c4ad6905-dffd-4b36-9702-5a8114ed60d1’,

…)]

And this error

···

Bokeh Error

Bokeh only supports type GeometryCollection and

FeatureCollection at top level

On Saturday, October 22, 2016 at 6:52:53 PM UTC-4, ss wrote:

Can some one please help me out with this question. I am stuck.

I am trying to convert New England Shapefile to the latest standard of Geo Jason and then plot the shape file.

http://stackoverflow.com/q/40197793/7058682

I would use the geopandas library to read the shapefile and write to GeoJSON

···

On Sat, Oct 22, 2016 at 3:54 PM, [email protected] wrote:

from itertools import chain as ch

from bokeh.io import output_file, show

from bokeh.models import (

ColumnDataSource,

Range1d,

HoverTool,

LogColorMapper

)

from bokeh.palettes import Viridis6 as palette

from bokeh.plotting import figure

from bokeh.models import GeoJSONDataSource

from bokeh.tile_providers import CARTODBPOSITRON

import shapefile

import json

I am trying to convert shape file into geo jason latest standard file here

def geojson_create(file_name):

reader = shapefile.Reader(file_name)

fields = reader.fields[1:]

states = set([record[1] for record in reader.records()])

#print states

field_names = [field[0] for field in fields]

buffer =

for sr in reader.shapeRecords():

atr = dict(zip(field_names, sr.record))

geom = sr.shape.geo_interface

#a = [list(x) for x in y for y in geom[‘coordinates’]]

b = list(ch(*geom[‘coordinates’]))

a = [[list(x) for x in b]]

#print a

geom[‘coordinates’] = a

buffer.append(dict(type=“Feature”,

geometry = geom,

properties = atr))

#print buffer[0]

with open(r’newengland/NEWENGLAND_POLY.json’, ‘w’) as geojson:

geojson.write(json.dumps({‘type’: “GeometryCollection”,

‘features’: buffer}, indent=2) +‘\n’)

return r’newengland/NEWENGLAND_POLY.json’, states

returns the location of json file and a list of states in new england

file_name = r’newengland/NEWENGLAND_POLY.shp’

geoJson_file, states = geojson_create(file_name)

geo_source= GeoJSONDataSource(geojson= json.dumps(geoJson_file))

gets the geo json data for use by Bokeh

x_range = Range1d(start=-15473429, end=2108550)

y_range = Range1d(start=-6315661, end=7264686)

p = figure(tools=‘wheel_zoom,pan’, x_range=x_range, y_range=y_range, title=‘title’, width=900, height=450)

p.axis.visible = False

p.circle(x=‘x’, y=‘y’, size=9, fill_color=“#60ACA1”, line_color=“#D2C4C1”, line_width=1.5, source=geo_source)

#p.add_tile(CARTODBPOSITRON)

#p.add_tools(HoverTool(tooltips=[(“name”, “@name”),(“(Long, Lat)”, “(@x, @y)”),]))

output_file(“geojson.html”)

show(p)

I am trying to implement this bokeh example(http://bokeh.pydata.org/en/latest/docs/user_guide/geo.html#userguide-geo). The first section of the code is trying to generate a geo json file from the shape file available at (http://www.mass.gov/anf/research-and-tech/it-serv-and-support/application-serv/office-of-geographic-information-massgis/datalayers/newnglnd.html)

I get the following errors when I execute this. Can someone help me out ?

INFO:bokeh.core.state:Session output file ‘geojson.html’ already

exists, will be overwritten.

ERROR:/Users/anaconda/lib/python2.7/site-packages/bokeh/core/validation/check.pyc:E-1001

(BAD_COLUMN_NAME): Glyph refers to nonexistent column name: x, y

[renderer: GlyphRenderer(id=‘7f115015-1ed2-4f2d-8507-85556958d5b9’,

…)]

ERROR:/Users/saadsyed/anaconda/lib/python2.7/site-packages/bokeh/core/validation/check.pyc:E-1001

(BAD_COLUMN_NAME): Glyph refers to nonexistent column name: x, y

[renderer: GlyphRenderer(id=‘c4ad6905-dffd-4b36-9702-5a8114ed60d1’,

…)]

And this error

Bokeh Error

Bokeh only supports type GeometryCollection and

FeatureCollection at top level

On Saturday, October 22, 2016 at 6:52:53 PM UTC-4, ss wrote:

Can some one please help me out with this question. I am stuck.

I am trying to convert New England Shapefile to the latest standard of Geo Jason and then plot the shape file.

http://stackoverflow.com/q/40197793/7058682

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/3b35038e-01d5-4c89-9d8f-75ff328cbf96%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Hey,

There are several problems you are facing. Not all are Bokeh related.

  1. Your call to json.dumps doesn’t actually read the json file, it only return the filename you passed, as json. And your file is already json, so you dont need the json-module, reading in the contents of the file is sufficient. So you want to change this to something like:

with open(r'newengland/NEWENGLAND_POLY.json', ‘r’) as f:
geo_source = GeoJSONDataSource(geojson=f.read())

``

You can even skip the file creation/reading, if change your function so it returns the actual json, instead of the filename.

  1. You have a polygon geosjon, and are trying to use the example for points. You cant plot polygons when using p.circle like you do now. Also, the column name changes for polygons/line to ‘xs’, ‘ys’ instead of ‘x’ and ‘y’ for points. So change your plotting command to:

p.patches(‘xs’, ‘ys’, fill_color=“red”, line_color=“black”, line_width=1.5, source=geo_source)

``

  1. I think your function to convert the shapefile to json is not correct, i don’t know why, and also don’t have the time to look into it right now. But when i use ‘ogr2ogr’ to convert the shapefile to json, and load it as described by point 1, it works fine for me. Ogr2ogr is a command line utility which is part of GDAL. But you can also use a program like QGIS to do this type of conversion.

You can view the notebook i used on nbviewer:

Regards,
Rutger

···

On Sunday, October 23, 2016 at 12:52:53 AM UTC+2, ss wrote:

Can some one please help me out with this question. I am stuck.

I am trying to convert New England Shapefile to the latest standard of Geo Jason and then plot the shape file.

http://stackoverflow.com/q/40197793/7058682

Thanks a lot Rutger. I will try some of your suggestions after work today. I also found a webapp to convert shape file to geojason. The output of that and my function looks similar. I will investigate further on that.

I will try patches and see if that works.

I did print the output after using json dumps. It does work. But i can retry using read.

···

On Oct 24, 2016 8:14 AM, “Rutger Kassies” [email protected] wrote:

Hey,

There are several problems you are facing. Not all are Bokeh related.

  1. Your call to json.dumps doesn’t actually read the json file, it only return the filename you passed, as json. And your file is already json, so you dont need the json-module, reading in the contents of the file is sufficient. So you want to change this to something like:

with open(r'newengland/NEWENGLAND_POLY.json', ‘r’) as f:
geo_source = GeoJSONDataSource(geojson=f.read())

``

You can even skip the file creation/reading, if change your function so it returns the actual json, instead of the filename.

  1. You have a polygon geosjon, and are trying to use the example for points. You cant plot polygons when using p.circle like you do now. Also, the column name changes for polygons/line to ‘xs’, ‘ys’ instead of ‘x’ and ‘y’ for points. So change your plotting command to:

p.patches(‘xs’, ‘ys’, fill_color=“red”, line_color=“black”, line_width=1.5, source=geo_source)

``

  1. I think your function to convert the shapefile to json is not correct, i don’t know why, and also don’t have the time to look into it right now. But when i use ‘ogr2ogr’ to convert the shapefile to json, and load it as described by point 1, it works fine for me. Ogr2ogr is a command line utility which is part of GDAL. But you can also use a program like QGIS to do this type of conversion.

You can view the notebook i used on nbviewer:
http://nbviewer.jupyter.org/gist/RutgerK/c8e5b573729d7111452c0623defc2c9b

Regards,
Rutger

On Sunday, October 23, 2016 at 12:52:53 AM UTC+2, ss wrote:

Can some one please help me out with this question. I am stuck.

I am trying to convert New England Shapefile to the latest standard of Geo Jason and then plot the shape file.

http://stackoverflow.com/q/40197793/7058682

I used www.mapshaper.org to convert the shape file to GeoJson and then used the GeoJSONDataSource function as shown below:

with open(r’newengland/NE.json’) as f:

geo_source= GeoJSONDataSource(f.read())

I get the following error:

ValueError: expected a dict or pandas.DataFrame, got {"type":"GeometryCollection","geometries":[
{"type":"Polygon","coordinates":[[[232399.5,1228114.129999999],[239250.3900000006,1114760.25],[241509.84000000358,1060190.379999999],[242510.95000000298,1035819.629999999],[244487.77000000328,1033290.379999999],[243315.2199999988,1031397.5599999987],[242990.5300000012,1012991.879999999],[248619.43999999762,1003543.879999999],[255794.0799999982,998509],[254451.52000000328,990049.629999999],[255451.47999999672,985912.8099999987],[254731.8900000006,987060],[250068.70000000298,986519.5599999987],[250913.1400000006,983617.25],[248417.77000000328,981650.8099999987],[247425,977184.5],[250389.43999999762,979182.3099999987],[253063.09000000358,977851.4400000013],[252719.8599999994,984330.5],[255897.4200000018,984705.1900000013],[261354.88000000268,980372.8099999987],[260211.04999999702,977621.0599999987]

is this not the format of GeoJson that works ?

Thanks
···

On Monday, October 24, 2016 at 8:14:30 AM UTC-4, Rutger Kassies wrote:

Hey,

There are several problems you are facing. Not all are Bokeh related.

  1. Your call to json.dumps doesn’t actually read the json file, it only return the filename you passed, as json. And your file is already json, so you dont need the json-module, reading in the contents of the file is sufficient. So you want to change this to something like:

with open(r'newengland/NEWENGLAND_POLY.json', ‘r’) as f:
geo_source = GeoJSONDataSource(geojson=f.read())

``

You can even skip the file creation/reading, if change your function so it returns the actual json, instead of the filename.

  1. You have a polygon geosjon, and are trying to use the example for points. You cant plot polygons when using p.circle like you do now. Also, the column name changes for polygons/line to ‘xs’, ‘ys’ instead of ‘x’ and ‘y’ for points. So change your plotting command to:

p.patches(‘xs’, ‘ys’, fill_color=“red”, line_color=“black”, line_width=1.5, source=geo_source)

``

  1. I think your function to convert the shapefile to json is not correct, i don’t know why, and also don’t have the time to look into it right now. But when i use ‘ogr2ogr’ to convert the shapefile to json, and load it as described by point 1, it works fine for me. Ogr2ogr is a command line utility which is part of GDAL. But you can also use a program like QGIS to do this type of conversion.

You can view the notebook i used on nbviewer:
http://nbviewer.jupyter.org/gist/RutgerK/c8e5b573729d7111452c0623defc2c9b

Regards,
Rutger

On Sunday, October 23, 2016 at 12:52:53 AM UTC+2, ss wrote:

Can some one please help me out with this question. I am stuck.

I am trying to convert New England Shapefile to the latest standard of Geo Jason and then plot the shape file.

http://stackoverflow.com/q/40197793/7058682

Looking at an
example, I think it’s meant to be
GeoJSONDataSource(geojson=geojson)

so in your case:
GeoJSONDataSource(geojson=f.read())

···

On 10/24/16 7:41 PM,
wrote:

[email protected]

    I used to convert the shape file

to GeoJson and then used the GeoJSONDataSource function as shown
below:

  You received this message because you are subscribed to the Google

Groups “Bokeh Discussion - Public” group.

  To unsubscribe from this group and stop receiving emails from it,

send an email to [email protected].

  To post to this group, send email to [email protected].

  To view this discussion on the web visit [https://groups.google.com/a/continuum.io/d/msgid/bokeh/1b195f30-48c3-499a-a8f6-ee8610072d5a%40continuum.io](https://groups.google.com/a/continuum.io/d/msgid/bokeh/1b195f30-48c3-499a-a8f6-ee8610072d5a%40continuum.io?utm_medium=email&utm_source=footer).

  For more options, visit [https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout).


Sarah Bird
Developer, Bokeh

    [
      ![Continuum Analytics](http://docs.continuum.io/_static/img/ContinuumWordmark.png)
    ](http://continuum.io)

www.mapshaper.org

with open(r’newengland/NE.json’) as f:

geo_source= GeoJSONDataSource(f.read())

I get the following error:

ValueError: expected a dict or pandas.DataFrame, got {"type":"GeometryCollection","geometries":[
{"type":"Polygon","coordinates":[[[232399.5,1228114.129999999],[239250.3900000006,1114760.25],[241509.84000000358,1060190.379999999],[242510.95000000298,1035819.629999999],[244487.77000000328,1033290.379999999],[243315.2199999988,1031397.5599999987],[242990.5300000012,1012991.879999999],[248619.43999999762,1003543.879999999],[255794.0799999982,998509],[254451.52000000328,990049.629999999],[255451.47999999672,985912.8099999987],[254731.8900000006,987060],[250068.70000000298,986519.5599999987],[250913.1400000006,983617.25],[248417.77000000328,981650.8099999987],[247425,977184.5],[250389.43999999762,979182.3099999987],[253063.09000000358,977851.4400000013],[252719.8599999994,984330.5],[255897.4200000018,984705.1900000013],[261354.88000000268,980372.8099999987],[260211.04999999702,977621.0599999987]

is this not the format of GeoJson that works ?

Thanks
      On Monday, October 24, 2016 at 8:14:30 AM UTC-4, Rutger

Kassies wrote:

Hey,

          There are several problems you are facing. Not all are

Bokeh related.

          1. Your call to json.dumps doesn't actually read the json

file, it only return the filename you passed, as json. And
your file is already json, so you dont need the
json-module, reading in the contents of the file is
sufficient. So you want to change this to something like:

                with open(`r'newengland/NEWENGLAND_POLY.json'`, 'r') as f:

                      geo_source = GeoJSONDataSource(geojson=f.read())

``

          You can even skip the file creation/reading, if change

your function so it returns the actual json, instead of
the filename.

          2. You have a polygon geosjon, and are trying to use the

example for points. You cant plot polygons when using
p.circle like you do now. Also, the column name changes
for polygons/line to ‘xs’, ‘ys’ instead of ‘x’ and ‘y’ for
points. So change your plotting command to:

                  p.patches('xs', 'ys', fill_color="red", line_color="black", line_width=1.5, source=geo_source)

``

          3. I think your function to convert the shapefile to json

is not correct, i don’t know why, and also don’t have the
time to look into it right now. But when i use ‘ogr2ogr’
to convert the shapefile to json, and load it as described
by point 1, it works fine for me. Ogr2ogr is a command
line utility which is part of GDAL. But you can also use a
program like QGIS to do this type of conversion.

          You can view the notebook i used on nbviewer:

          [http://nbviewer.jupyter.org/gist/RutgerK/c8e5b573729d7111452c0623defc2c9b](http://nbviewer.jupyter.org/gist/RutgerK/c8e5b573729d7111452c0623defc2c9b)



          Regards,

          Rutger





          On Sunday, October 23, 2016 at 12:52:53 AM UTC+2, ss

wrote:

                Can some one please help me out with this

question. I am stuck.

                I am trying to convert New England Shapefile to

the latest standard of Geo Jason and then plot the
shape file.

http://stackoverflow.com/q/40197793/7058682

Thank you everyone, this works :slight_smile:

···

On Tue, Oct 25, 2016 at 2:23 AM, Sarah Bird - Continuum [email protected] wrote:

      Looking at an

example, I think it’s meant to be

  GeoJSONDataSource(geojson=geojson)

so in your case:

  GeoJSONDataSource(geojson=f.read())
  On 10/24/16 7:41 PM,

[email protected] wrote:

I used www.mapshaper.org to convert the shape file
to GeoJson and then used the GeoJSONDataSource function as shown
below:

with open(r’newengland/NE.json’) as f:

geo_source= GeoJSONDataSource(f.read())

I get the following error:

ValueError: expected a dict or pandas.DataFrame, got {"type":"GeometryCollection","geometries":[
{"type":"Polygon","coordinates":[[[232399.5,1228114.129999999],[239250.3900000006,1114760.25],[241509.84000000358,1060190.379999999],[242510.95000000298,1035819.629999999],[244487.77000000328,1033290.379999999],[243315.2199999988,1031397.5599999987],[242990.5300000012,1012991.879999999],[248619.43999999762,1003543.879999999],[255794.0799999982,998509],[254451.52000000328,990049.629999999],[255451.47999999672,985912.8099999987],[254731.8900000006,987060],[250068.70000000298,986519.5599999987],[250913.1400000006,983617.25],[248417.77000000328,981650.8099999987],[247425,977184.5],[250389.43999999762,979182.3099999987],[253063.09000000358,977851.4400000013],[252719.8599999994,984330.5],[255897.4200000018,984705.1900000013],[261354.88000000268,980372.8099999987],[260211.04999999702,977621.0599999987]


is this not the format of GeoJson that works ?

Thanks
      On Monday, October 24, 2016 at 8:14:30 AM UTC-4, Rutger

Kassies wrote:

Hey,

          There are several problems you are facing. Not all are

Bokeh related.

          1. Your call to json.dumps doesn't actually read the json

file, it only return the filename you passed, as json. And
your file is already json, so you dont need the
json-module, reading in the contents of the file is
sufficient. So you want to change this to something like:

                with open(`r'newengland/NEWENGLAND_POLY.json'`, 'r') as f:

                      geo_source = GeoJSONDataSource(geojson=f.read())

``

          You can even skip the file creation/reading, if change

your function so it returns the actual json, instead of
the filename.

          2. You have a polygon geosjon, and are trying to use the

example for points. You cant plot polygons when using
p.circle like you do now. Also, the column name changes
for polygons/line to ‘xs’, ‘ys’ instead of ‘x’ and ‘y’ for
points. So change your plotting command to:

                  p.patches('xs', 'ys', fill_color="red", line_color="black", line_width=1.5, source=geo_source)

``

          3. I think your function to convert the shapefile to json

is not correct, i don’t know why, and also don’t have the
time to look into it right now. But when i use ‘ogr2ogr’
to convert the shapefile to json, and load it as described
by point 1, it works fine for me. Ogr2ogr is a command
line utility which is part of GDAL. But you can also use a
program like QGIS to do this type of conversion.

          You can view the notebook i used on nbviewer:

          [http://nbviewer.jupyter.org/gist/RutgerK/c8e5b573729d7111452c0623defc2c9b](http://nbviewer.jupyter.org/gist/RutgerK/c8e5b573729d7111452c0623defc2c9b)



          Regards,

          Rutger





          On Sunday, October 23, 2016 at 12:52:53 AM UTC+2, ss

wrote:

                Can some one please help me out with this

question. I am stuck.

                I am trying to convert New England Shapefile to

the latest standard of Geo Jason and then plot the
shape file.

http://stackoverflow.com/q/40197793/7058682

  You received this message because you are subscribed to the Google

Groups “Bokeh Discussion - Public” group.

  To unsubscribe from this group and stop receiving emails from it,

send an email to [email protected].

  To post to this group, send email to [email protected].

  To view this discussion on the web visit [https://groups.google.com/a/continuum.io/d/msgid/bokeh/1b195f30-48c3-499a-a8f6-ee8610072d5a%40continuum.io](https://groups.google.com/a/continuum.io/d/msgid/bokeh/1b195f30-48c3-499a-a8f6-ee8610072d5a%40continuum.io?utm_medium=email&utm_source=footer).

  For more options, visit [https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout).


Sarah Bird
Developer, Bokeh

    [
      ![Continuum Analytics](http://docs.continuum.io/_static/img/ContinuumWordmark.png)
    ](http://continuum.io)

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/fe81ce57-ca64-bc94-1e80-db9339d6a6e9%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

If there are docs and/or an example that could help to make this clearer for other users from the start, a contribution would be very welcome. :slight_smile:

Thanks,

Bryan

···

On Tue, Oct 25, 2016 at 2:23 AM, Sarah Bird - Continuum [email protected] wrote:

      Looking at an

example, I think it’s meant to be

  GeoJSONDataSource(geojson=geojson)

so in your case:

  GeoJSONDataSource(geojson=f.read())
  On 10/24/16 7:41 PM,

[email protected] wrote:

I used www.mapshaper.org to convert the shape file
to GeoJson and then used the GeoJSONDataSource function as shown
below:

with open(r’newengland/NE.json’) as f:

geo_source= GeoJSONDataSource(f.read())

I get the following error:

ValueError: expected a dict or pandas.DataFrame, got {"type":"GeometryCollection","geometries":[
{"type":"Polygon","coordinates":[[[232399.5,1228114.129999999],[239250.3900000006,1114760.25],[241509.84000000358,1060190.379999999],[242510.95000000298,1035819.629999999],[244487.77000000328,1033290.379999999],[243315.2199999988,1031397.5599999987],[242990.5300000012,1012991.879999999],[248619.43999999762,1003543.879999999],[255794.0799999982,998509],[254451.52000000328,990049.629999999],[255451.47999999672,985912.8099999987],[254731.8900000006,987060],[250068.70000000298,986519.5599999987],[250913.1400000006,983617.25],[248417.77000000328,981650.8099999987],[247425,977184.5],[250389.43999999762,979182.3099999987],[253063.09000000358,977851.4400000013],[252719.8599999994,984330.5],[255897.4200000018,984705.1900000013],[261354.88000000268,980372.8099999987],[260211.04999999702,977621.0599999987]


is this not the format of GeoJson that works ?

Thanks
      On Monday, October 24, 2016 at 8:14:30 AM UTC-4, Rutger

Kassies wrote:

Hey,

          There are several problems you are facing. Not all are

Bokeh related.

          1. Your call to json.dumps doesn't actually read the json

file, it only return the filename you passed, as json. And
your file is already json, so you dont need the
json-module, reading in the contents of the file is
sufficient. So you want to change this to something like:

                with open(`r'newengland/NEWENGLAND_POLY.json'`, 'r') as f:

                      geo_source = GeoJSONDataSource(geojson=f.read())

``

          You can even skip the file creation/reading, if change

your function so it returns the actual json, instead of
the filename.

          2. You have a polygon geosjon, and are trying to use the

example for points. You cant plot polygons when using
p.circle like you do now. Also, the column name changes
for polygons/line to ‘xs’, ‘ys’ instead of ‘x’ and ‘y’ for
points. So change your plotting command to:

                  p.patches('xs', 'ys', fill_color="red", line_color="black", line_width=1.5, source=geo_source)

``

          3. I think your function to convert the shapefile to json

is not correct, i don’t know why, and also don’t have the
time to look into it right now. But when i use ‘ogr2ogr’
to convert the shapefile to json, and load it as described
by point 1, it works fine for me. Ogr2ogr is a command
line utility which is part of GDAL. But you can also use a
program like QGIS to do this type of conversion.

          You can view the notebook i used on nbviewer:

          [http://nbviewer.jupyter.org/gist/RutgerK/c8e5b573729d7111452c0623defc2c9b](http://nbviewer.jupyter.org/gist/RutgerK/c8e5b573729d7111452c0623defc2c9b)



          Regards,

          Rutger





          On Sunday, October 23, 2016 at 12:52:53 AM UTC+2, ss

wrote:

                Can some one please help me out with this

question. I am stuck.

                I am trying to convert New England Shapefile to

the latest standard of Geo Jason and then plot the
shape file.

http://stackoverflow.com/q/40197793/7058682

  You received this message because you are subscribed to the Google

Groups “Bokeh Discussion - Public” group.

  To unsubscribe from this group and stop receiving emails from it,

send an email to [email protected].

  To post to this group, send email to [email protected].

  To view this discussion on the web visit [https://groups.google.com/a/continuum.io/d/msgid/bokeh/1b195f30-48c3-499a-a8f6-ee8610072d5a%40continuum.io](https://groups.google.com/a/continuum.io/d/msgid/bokeh/1b195f30-48c3-499a-a8f6-ee8610072d5a%40continuum.io?utm_medium=email&utm_source=footer).

  For more options, visit [https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout).


Sarah Bird
Developer, Bokeh

    [
      ![Continuum Analytics](http://docs.continuum.io/_static/img/ContinuumWordmark.png)
    ](http://continuum.io)

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/fe81ce57-ca64-bc94-1e80-db9339d6a6e9%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

The docs are fine i think, but perhaps the “us_counties” sample data in Bokeh can (also) be provided as a geojson. Then the Texas unemployment example can be updated so it uses the GeoJsonDataSource. The current example imports the counties as a dictionary. Of the many geographic formats a user can have as a starting point, a dictionary is probably not one of them. This example probably comes from the time before the GeoJsonDataSource was added to Bokeh.

The current example is a good demonstration of how to do it in a ‘custom’ way, by separating rings with nan’s etc. But that’s not very user friendly, especially if they lack knowledge about geographic data formats. Since this is the only example showing geographical polygons, its probably best if its as easy as it gets. If needed, the current example might be kept for more advanced use cases, but removing it from the gallery might help steering new users to start simple with the GeoJsonDataSource.

Changing the example is simple, i wouldn’t mind doing that. Only i’m not sure about adding the sample data, it looks as if it needs to be added to an amazon storage? And also regarding the original source and its licensing etc about distributing the data?

Regards,
Rutger

···

On Tuesday, October 25, 2016 at 2:32:45 PM UTC+2, Bryan Van de ven wrote:

If there are docs and/or an example that could help to make this clearer for other users from the start, a contribution would be very welcome. :slight_smile:

Thanks,

Bryan

On Oct 25, 2016, at 07:27, Saad Syed [email protected] wrote:

Thank you everyone, this works :slight_smile:

On Tue, Oct 25, 2016 at 2:23 AM, Sarah Bird - Continuum [email protected] wrote:

      Looking at an

example, I think it’s meant to be

  GeoJSONDataSource(geojson=geojson)

so in your case:

  GeoJSONDataSource(geojson=f.read())
  On 10/24/16 7:41 PM, > > > [email protected] wrote:

I used www.mapshaper.org to convert the shape file
to GeoJson and then used the GeoJSONDataSource function as shown
below:

with open(r’newengland/NE.json’) as f:

geo_source= GeoJSONDataSource(f.read())

I get the following error:

ValueError: expected a dict or pandas.DataFrame, got {"type":"GeometryCollection","geometries":[
{"type":"Polygon","coordinates":[[[232399.5,1228114.129999999],[239250.3900000006,1114760.25],[241509.84000000358,1060190.379999999],[242510.95000000298,1035819.629999999],[244487.77000000328,1033290.379999999],[243315.2199999988,1031397.5599999987],[242990.5300000012,1012991.879999999],[248619.43999999762,1003543.879999999],[255794.0799999982,998509],[254451.52000000328,990049.629999999],[255451.47999999672,985912.8099999987],[254731.8900000006,987060],[250068.70000000298,986519.5599999987],[250913.1400000006,983617.25],[248417.77000000328,981650.8099999987],[247425,977184.5],[250389.43999999762,979182.3099999987],[253063.09000000358,977851.4400000013],[252719.8599999994,984330.5],[255897.4200000018,984705.1900000013],[261354.88000000268,980372.8099999987],[260211.04999999702,977621.0599999987]


is this not the format of GeoJson that works ?

Thanks
      On Monday, October 24, 2016 at 8:14:30 AM UTC-4, Rutger > > > > Kassies wrote:

Hey,

          There are several problems you are facing. Not all are

Bokeh related.

          1. Your call to json.dumps doesn't actually read the json

file, it only return the filename you passed, as json. And
your file is already json, so you dont need the
json-module, reading in the contents of the file is
sufficient. So you want to change this to something like:

                with open(`r'newengland/NEWENGLAND_POLY.json'`, 'r') as f:

                      geo_source = GeoJSONDataSource(geojson=f.read())

``

          You can even skip the file creation/reading, if change

your function so it returns the actual json, instead of
the filename.

          2. You have a polygon geosjon, and are trying to use the

example for points. You cant plot polygons when using
p.circle like you do now. Also, the column name changes
for polygons/line to ‘xs’, ‘ys’ instead of ‘x’ and ‘y’ for
points. So change your plotting command to:

                  p.patches('xs', 'ys', fill_color="red", line_color="black", line_width=1.5, source=geo_source)

``

          3. I think your function to convert the shapefile to json

is not correct, i don’t know why, and also don’t have the
time to look into it right now. But when i use ‘ogr2ogr’
to convert the shapefile to json, and load it as described
by point 1, it works fine for me. Ogr2ogr is a command
line utility which is part of GDAL. But you can also use a
program like QGIS to do this type of conversion.

          You can view the notebook i used on nbviewer:

          [http://nbviewer.jupyter.org/gist/RutgerK/c8e5b573729d7111452c0623defc2c9b](http://nbviewer.jupyter.org/gist/RutgerK/c8e5b573729d7111452c0623defc2c9b)



          Regards,

          Rutger





          On Sunday, October 23, 2016 at 12:52:53 AM UTC+2, ss > > > > > wrote:
                Can some one please help me out with this

question. I am stuck.

                I am trying to convert New England Shapefile to

the latest standard of Geo Jason and then plot the
shape file.

http://stackoverflow.com/q/40197793/7058682

  You received this message because you are subscribed to the Google

Groups “Bokeh Discussion - Public” group.

  To unsubscribe from this group and stop receiving emails from it,

send an email to [email protected].

  To post to this group, send email to [email protected].

  To view this discussion on the web visit [https://groups.google.com/a/continuum.io/d/msgid/bokeh/1b195f30-48c3-499a-a8f6-ee8610072d5a%40continuum.io](https://groups.google.com/a/continuum.io/d/msgid/bokeh/1b195f30-48c3-499a-a8f6-ee8610072d5a%40continuum.io?utm_medium=email&utm_source=footer).

  For more options, visit [https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout).


Sarah Bird
Developer, Bokeh

    [
      <img alt="Continuum Analytics" src="https://lh6.googleusercontent.com/proxy/VYgVjggTk1hCXSN9wFkffE3I6kxTvJ51tT4KvDXOuKbs1WyFG66k7kt2-vkDimbyxfWtP-d1paJmstMYhPPnDYSUF4rLPoYM2GM2QFM=w5000-h5000" style="width:150px;min-height:30px" width="150" height="30">
    ](http://continuum.io)

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/fe81ce57-ca64-bc94-1e80-db9339d6a6e9%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAGPDHyv0w%3DSvEU%2BjChcG09uwTzU7zs-a%3DoUXaz5mX9zvaAczMQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

An example using the GeoJSONDataSource could look like this:

Although merging/filtering the counties and the unemployment rate seems unnecessary messy in this way. Is there a mechanism to edit data in a GeoJSONDataSource object? Adding the unemployment rate to the input data is probably better if the example is to show off patches/geojson capabilities. Any pre-processing of the data is only distracting.

Regards,
Rutger

···

On Tuesday, October 25, 2016 at 3:20:39 PM UTC+2, Rutger Kassies wrote:

The docs are fine i think, but perhaps the “us_counties” sample data in Bokeh can (also) be provided as a geojson. Then the Texas unemployment example can be updated so it uses the GeoJsonDataSource. The current example imports the counties as a dictionary. Of the many geographic formats a user can have as a starting point, a dictionary is probably not one of them. This example probably comes from the time before the GeoJsonDataSource was added to Bokeh.

The current example is a good demonstration of how to do it in a ‘custom’ way, by separating rings with nan’s etc. But that’s not very user friendly, especially if they lack knowledge about geographic data formats. Since this is the only example showing geographical polygons, its probably best if its as easy as it gets. If needed, the current example might be kept for more advanced use cases, but removing it from the gallery might help steering new users to start simple with the GeoJsonDataSource.

Changing the example is simple, i wouldn’t mind doing that. Only i’m not sure about adding the sample data, it looks as if it needs to be added to an amazon storage? And also regarding the original source and its licensing etc about distributing the data?

Regards,
Rutger

On Tuesday, October 25, 2016 at 2:32:45 PM UTC+2, Bryan Van de ven wrote:

If there are docs and/or an example that could help to make this clearer for other users from the start, a contribution would be very welcome. :slight_smile:

Thanks,

Bryan

On Oct 25, 2016, at 07:27, Saad Syed [email protected] wrote:

Thank you everyone, this works :slight_smile:

On Tue, Oct 25, 2016 at 2:23 AM, Sarah Bird - Continuum [email protected] wrote:

      Looking at an

example, I think it’s meant to be

  GeoJSONDataSource(geojson=geojson)

so in your case:

  GeoJSONDataSource(geojson=f.read())
  On 10/24/16 7:41 PM, > > > > [email protected] wrote:

I used www.mapshaper.org to convert the shape file
to GeoJson and then used the GeoJSONDataSource function as shown
below:

with open(r’newengland/NE.json’) as f:

geo_source= GeoJSONDataSource(f.read())

I get the following error:

ValueError: expected a dict or pandas.DataFrame, got {"type":"GeometryCollection","geometries":[
{"type":"Polygon","coordinates":[[[232399.5,1228114.129999999],[239250.3900000006,1114760.25],[241509.84000000358,1060190.379999999],[242510.95000000298,1035819.629999999],[244487.77000000328,1033290.379999999],[243315.2199999988,1031397.5599999987],[242990.5300000012,1012991.879999999],[248619.43999999762,1003543.879999999],[255794.0799999982,998509],[254451.52000000328,990049.629999999],[255451.47999999672,985912.8099999987],[254731.8900000006,987060],[250068.70000000298,986519.5599999987],[250913.1400000006,983617.25],[248417.77000000328,981650.8099999987],[247425,977184.5],[250389.43999999762,979182.3099999987],[253063.09000000358,977851.4400000013],[252719.8599999994,984330.5],[255897.4200000018,984705.1900000013],[261354.88000000268,980372.8099999987],[260211.04999999702,977621.0599999987]


is this not the format of GeoJson that works ?

Thanks
      On Monday, October 24, 2016 at 8:14:30 AM UTC-4, Rutger > > > > > Kassies wrote:

Hey,

          There are several problems you are facing. Not all are

Bokeh related.

          1. Your call to json.dumps doesn't actually read the json

file, it only return the filename you passed, as json. And
your file is already json, so you dont need the
json-module, reading in the contents of the file is
sufficient. So you want to change this to something like:

                with open(`r'newengland/NEWENGLAND_POLY.json'`, 'r') as f:

                      geo_source = GeoJSONDataSource(geojson=f.read())

``

          You can even skip the file creation/reading, if change

your function so it returns the actual json, instead of
the filename.

          2. You have a polygon geosjon, and are trying to use the

example for points. You cant plot polygons when using
p.circle like you do now. Also, the column name changes
for polygons/line to ‘xs’, ‘ys’ instead of ‘x’ and ‘y’ for
points. So change your plotting command to:

                  p.patches('xs', 'ys', fill_color="red", line_color="black", line_width=1.5, source=geo_source)

``

          3. I think your function to convert the shapefile to json

is not correct, i don’t know why, and also don’t have the
time to look into it right now. But when i use ‘ogr2ogr’
to convert the shapefile to json, and load it as described
by point 1, it works fine for me. Ogr2ogr is a command
line utility which is part of GDAL. But you can also use a
program like QGIS to do this type of conversion.

          You can view the notebook i used on nbviewer:

          [http://nbviewer.jupyter.org/gist/RutgerK/c8e5b573729d7111452c0623defc2c9b](http://nbviewer.jupyter.org/gist/RutgerK/c8e5b573729d7111452c0623defc2c9b)



          Regards,

          Rutger





          On Sunday, October 23, 2016 at 12:52:53 AM UTC+2, ss > > > > > > wrote:
                Can some one please help me out with this

question. I am stuck.

                I am trying to convert New England Shapefile to

the latest standard of Geo Jason and then plot the
shape file.

http://stackoverflow.com/q/40197793/7058682

  You received this message because you are subscribed to the Google

Groups “Bokeh Discussion - Public” group.

  To unsubscribe from this group and stop receiving emails from it,

send an email to [email protected].

  To post to this group, send email to [email protected].

  To view this discussion on the web visit [https://groups.google.com/a/continuum.io/d/msgid/bokeh/1b195f30-48c3-499a-a8f6-ee8610072d5a%40continuum.io](https://groups.google.com/a/continuum.io/d/msgid/bokeh/1b195f30-48c3-499a-a8f6-ee8610072d5a%40continuum.io?utm_medium=email&utm_source=footer).

  For more options, visit [https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout).


Sarah Bird
Developer, Bokeh

    [
      <img alt="Continuum Analytics" src="https://lh6.googleusercontent.com/proxy/VYgVjggTk1hCXSN9wFkffE3I6kxTvJ51tT4KvDXOuKbs1WyFG66k7kt2-vkDimbyxfWtP-d1paJmstMYhPPnDYSUF4rLPoYM2GM2QFM=w5000-h5000" style="width:150px;min-height:30px" width="150" height="30">
    ](http://continuum.io)

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/fe81ce57-ca64-bc94-1e80-db9339d6a6e9%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAGPDHyv0w%3DSvEU%2BjChcG09uwTzU7zs-a%3DoUXaz5mX9zvaAczMQ%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

AFAIK the data is free to use, it was on a public google sheet, I'll have to try and dig up the original provenance. But if you make an example and data file, I will do that, and then we can also handle the upload to S3.

Thanks,

Bryan

···

On Oct 25, 2016, at 8:20 AM, Rutger Kassies <[email protected]> wrote:

The docs are fine i think, but perhaps the "us_counties" sample data in Bokeh can (also) be provided as a geojson. Then the Texas unemployment example can be updated so it uses the GeoJsonDataSource. The current example imports the counties as a dictionary. Of the many geographic formats a user can have as a starting point, a dictionary is probably not one of them. This example probably comes from the time before the GeoJsonDataSource was added to Bokeh.

The current example is a good demonstration of how to do it in a 'custom' way, by separating rings with nan's etc. But that's not very user friendly, especially if they lack knowledge about geographic data formats. Since this is the only example showing geographical polygons, its probably best if its as easy as it gets. If needed, the current example might be kept for more advanced use cases, but removing it from the gallery might help steering new users to start simple with the GeoJsonDataSource.

Changing the example is simple, i wouldn't mind doing that. Only i'm not sure about adding the sample data, it looks as if it needs to be added to an amazon storage? And also regarding the original source and its licensing etc about distributing the data?

Regards,
Rutger

On Tuesday, October 25, 2016 at 2:32:45 PM UTC+2, Bryan Van de ven wrote:
If there are docs and/or an example that could help to make this clearer for other users from the start, a contribution would be very welcome. :slight_smile:

Thanks,

Bryan

On Oct 25, 2016, at 07:27, Saad Syed <[email protected]> wrote:

Thank you everyone, this works :slight_smile:

On Tue, Oct 25, 2016 at 2:23 AM, Sarah Bird - Continuum <[email protected]> wrote:
Looking at an example, I think it's meant to be GeoJSONDataSource(geojson=geojson)

so in your case:
GeoJSONDataSource(geojson=f.read())

On 10/24/16 7:41 PM, ssaqua...@gmail.com wrote:

I used www.mapshaper.org to convert the shape file to GeoJson and then used the GeoJSONDataSource function as shown below:

with open(r'newengland/NE.json') as f:
    geo_source= GeoJSONDataSource(f.read())
I get the following error:
ValueError: expected a dict or pandas.DataFrame, got {"type":"GeometryCollection","
geometries":[
{"type":"Polygon","
coordinates":[[[232399.5,1228114.129999999],[239250.3900000006,1114760.25],[241509.84000000358,1060190.379999999],[242510.95000000298,1035819.629999999],[244487.77000000328,1033290.379999999],[243315.2199999988,1031397.5599999987],[242990.5300000012,1012991.879999999],[248619.43999999762,1003543.879999999],[255794.0799999982,998509],[254451.52000000328,990049.629999999],[255451.47999999672,985912.8099999987],[254731.8900000006,987060],[250068.70000000298,986519.5599999987],[250913.1400000006,983617.25],[248417.77000000328,981650.8099999987],[247425,977184.5],[250389.43999999762,979182.3099999987],[253063.09000000358,977851.4400000013],[252719.8599999994,984330.5],[255897.4200000018,984705.1900000013],[261354.88000000268,980372.8099999987],[260211.04999999702,977621.0599999987]

is this not the format of GeoJson that works ?
Thanks

On Monday, October 24, 2016 at 8:14:30 AM UTC-4, Rutger Kassies wrote:
Hey,

There are several problems you are facing. Not all are Bokeh related.

1. Your call to json.dumps doesn't actually read the json file, it only return the filename you passed, as json. And your file is already json, so you dont need the json-module, reading in the contents of the file is sufficient. So you want to change this to something like:

with open(r'newengland/NEWENGLAND_POLY.json', 'r') as f:
    geo_source = GeoJSONDataSource(geojson=f.read())

You can even skip the file creation/reading, if change your function so it returns the actual json, instead of the filename.

2. You have a polygon geosjon, and are trying to use the example for points. You cant plot polygons when using p.circle like you do now. Also, the column name changes for polygons/line to 'xs', 'ys' instead of 'x' and 'y' for points. So change your plotting command to:

p.patches('xs', 'ys', fill_color="red", line_color="black", line_width=1.5, source=geo_source)

3. I think your function to convert the shapefile to json is not correct, i don't know why, and also don't have the time to look into it right now. But when i use 'ogr2ogr' to convert the shapefile to json, and load it as described by point 1, it works fine for me. Ogr2ogr is a command line utility which is part of GDAL. But you can also use a program like QGIS to do this type of conversion.

You can view the notebook i used on nbviewer:
http://nbviewer.jupyter.org/gist/RutgerK/c8e5b573729d7111452c0623defc2c9b

Regards,
Rutger

On Sunday, October 23, 2016 at 12:52:53 AM UTC+2, ss wrote:
Can some one please help me out with this question. I am stuck.

I am trying to convert New England Shapefile to the latest standard of Geo Jason and then plot the shape file.

http://stackoverflow.com/q/40197793/7058682
--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+un...@continuum.io.
To post to this group, send email to bo...@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/1b195f30-48c3-499a-a8f6-ee8610072d5a%40continuum.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
Sarah Bird
Developer, Bokeh

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+un...@continuum.io.
To post to this group, send email to bo...@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/fe81ce57-ca64-bc94-1e80-db9339d6a6e9%40continuum.io\.

For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bokeh+un...@continuum.io.
To post to this group, send email to bo...@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAGPDHyv0w%3DSvEU%2BjChcG09uwTzU7zs-a%3DoUXaz5mX9zvaAczMQ%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/a2bfbe2a-8400-4f7a-91c9-6632b969b483%40continuum.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

Rutger,

  Just wanted to say thanks for continuing to chip in on geo

related questions on the mailing list, and helping folks
(including me) beyond the scope of bokeh problems.

Best,

Bird
···

On 10/25/16 9:30 AM, Bryan Van de Ven
wrote:


AFAIK the data is free to use, it was on a public google sheet, I'll have to try and dig up the original provenance. But if you make an example and data file, I will do that, and then we can also handle the upload to S3.
Thanks,
Bryan

On Oct 25, 2016, at 8:20 AM, Rutger Kassies wrote:
The docs are fine i think, but perhaps the "us_counties" sample data in Bokeh can (also) be provided as a geojson. Then the Texas unemployment example can be updated so it uses the GeoJsonDataSource. The current example imports the counties as a dictionary. Of the many geographic formats a user can have as a starting point, a dictionary is probably not one of them. This example probably comes from the time before the GeoJsonDataSource was added to Bokeh. The current example is a good demonstration of how to do it in a 'custom' way, by separating rings with nan's etc. But that's not very user friendly, especially if they lack knowledge about geographic data formats. Since this is the only example showing geographical polygons, its probably best if its as easy as it gets. If needed, the current example might be kept for more advanced use cases, but removing it from the gallery might help steering new users to start simple with the GeoJsonDataSource. Changing the example is simple, i wouldn't mind doing that. Only i'm not sure about adding the sample data, it looks as if it needs to be added to an amazon storage? And also regarding the original source and its licensing etc about distributing the data?
Regards,
Rutger
On Tuesday, October 25, 2016 at 2:32:45 PM UTC+2, Bryan Van de ven wrote:
If there are docs and/or an example that could help to make this clearer for other users from the start, a contribution would be very welcome. :)
Thanks,
Bryan On Oct 25, 2016, at 07:27, Saad Syed wrote:

Thank you everyone, this works :)
On Tue, Oct 25, 2016 at 2:23 AM, Sarah Bird - Continuum wrote:
Looking at an example, I think it's meant to be GeoJSONDataSource(geojson=geojson)
so in your case: GeoJSONDataSource(geojson=f.read())
On 10/24/16 7:41 PM, wrote:

I used to convert the shape file to GeoJson and then used the GeoJSONDataSource function as shown below:
with open(r'newengland/NE.json') as f:
geo_source= GeoJSONDataSource(f.read())
I get the following error:
ValueError: expected a dict or pandas.DataFrame, got {"type":"GeometryCollection","
geometries":[
{"type":"Polygon","
coordinates":[[[232399.5,1228114.129999999],[239250.3900000006,1114760.25],[241509.84000000358,1060190.379999999],[242510.95000000298,1035819.629999999],[244487.77000000328,1033290.379999999],[243315.2199999988,1031397.5599999987],[242990.5300000012,1012991.879999999],[248619.43999999762,1003543.879999999],[255794.0799999982,998509],[254451.52000000328,990049.629999999],[255451.47999999672,985912.8099999987],[254731.8900000006,987060],[250068.70000000298,986519.5599999987],[250913.1400000006,983617.25],[248417.77000000328,981650.8099999987],[247425,977184.5],[250389.43999999762,979182.3099999987],[253063.09000000358,977851.4400000013],[252719.8599999994,984330.5],[255897.4200000018,984705.1900000013],[261354.88000000268,980372.8099999987],[260211.04999999702,977621.0599999987]
is this not the format of GeoJson that works ?
Thanks
On Monday, October 24, 2016 at 8:14:30 AM UTC-4, Rutger Kassies wrote:
Hey,
There are several problems you are facing. Not all are Bokeh related. 1. Your call to json.dumps doesn't actually read the json file, it only return the filename you passed, as json. And your file is already json, so you dont need the json-module, reading in the contents of the file is sufficient. So you want to change this to something like:
with open(r'newengland/NEWENGLAND_POLY.json', 'r') as f:
geo_source = GeoJSONDataSource(geojson=f.read())
You can even skip the file creation/reading, if change your function so it returns the actual json, instead of the filename.
2. You have a polygon geosjon, and are trying to use the example for points. You cant plot polygons when using p.circle like you do now. Also, the column name changes for polygons/line to 'xs', 'ys' instead of 'x' and 'y' for points. So change your plotting command to:
p.patches('xs', 'ys', fill_color="red", line_color="black", line_width=1.5, source=geo_source)
3. I think your function to convert the shapefile to json is not correct, i don't know why, and also don't have the time to look into it right now. But when i use 'ogr2ogr' to convert the shapefile to json, and load it as described by point 1, it works fine for me. Ogr2ogr is a command line utility which is part of GDAL. But you can also use a program like QGIS to do this type of conversion.
You can view the notebook i used on nbviewer:
Regards,
Rutger
On Sunday, October 23, 2016 at 12:52:53 AM UTC+2, ss wrote:
Can some one please help me out with this question. I am stuck.
I am trying to convert New England Shapefile to the latest standard of Geo Jason and then plot the shape file.
-- You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to .
To post to this group, send email to .
To view this discussion on the web visit .
For more options, visit .




-- Sarah Bird
Developer, Bokeh -- You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to .
To post to this group, send email to .
To view this discussion on the web visit .
For more options, visit .
-- You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to .
To post to this group, send email to .
To view this discussion on the web visit .
For more options, visit .
-- You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to .
To post to this group, send email to .
To view this discussion on the web visit .
For more options, visit .


Sarah Bird
Developer, Bokeh

    [
      ![Continuum Analytics](http://docs.continuum.io/_static/img/ContinuumWordmark.png)
    ](http://continuum.io)

[email protected][email protected][email protected][email protected]www.mapshaper.orghttp://nbviewer.jupyter.org/gist/RutgerK/c8e5b573729d7111452c0623defc2c9bhttp://stackoverflow.com/q/40197793/7058682bokeh+un…@continuum.iobo@continuum.iohttps://groups.google.com/a/continuum.io/d/msgid/bokeh/1b195f30-48c3-499a-a8f6-ee8610072d5a%40continuum.iohttps://groups.google.com/a/continuum.io/d/optoutbokeh+un…@continuum.iobo@continuum.iohttps://groups.google.com/a/continuum.io/d/msgid/bokeh/fe81ce57-ca64-bc94-1e80-db9339d6a6e9%40continuum.iohttps://groups.google.com/a/continuum.io/d/optoutbokeh+un…@continuum.iobo@continuum.iohttps://groups.google.com/a/continuum.io/d/msgid/bokeh/CAGPDHyv0w%3DSvEU%2BjChcG09uwTzU7zs-a%3DoUXaz5mX9zvaAczMQ%40mail.gmail.comhttps://groups.google.com/a/continuum.io/d/optout[email protected]@continuum.iohttps://groups.google.com/a/continuum.io/d/msgid/bokeh/a2bfbe2a-8400-4f7a-91c9-6632b969b483%40continuum.iohttps://groups.google.com/a/continuum.io/d/optout

Thanks Sarah,

But actually i’ve been ignoring Bokeh for almost a year now, only occasionally checking out some new features out of curiosity. The only reason for this, and sorry for bringing it up again, is that the majority of my use cases would involve polygons with holes. Often shapes of agricultural fields etc, but also for things like filled contours for which a rasterizing approach would be a poor workaround.

Now from what i’ve seen of the issues/pr’s on Github about this, it seemed as if you solved it already for 99%. Whats the current status of this? Are there any issues holding it back? For complicated Javascripts things i wont be of much use, but perhaps others are. I’m sure i’m not the only one wanting to use Bokeh for GIS related plotting.

Regards,
Rutger

···

On Tuesday, October 25, 2016 at 7:22:28 PM UTC+2, Sarah Bird wrote:

Rutger,

  Just wanted to say thanks for continuing to chip in on geo

related questions on the mailing list, and helping folks
(including me) beyond the scope of bokeh problems.

Best,

Bird


  On 10/25/16 9:30 AM, Bryan Van de Ven > wrote:

AFAIK the data is free to use, it was on a public google sheet, I'll have to try and dig up the original provenance. But if you make an example and data file, I will do that, and then we can also handle the upload to S3.
Thanks,
Bryan
On Oct 25, 2016, at 8:20 AM, Rutger Kassies <[email protected]> wrote:
The docs are fine i think, but perhaps the "us_counties" sample data in Bokeh can (also) be provided as a geojson. Then the Texas unemployment example can be updated so it uses the GeoJsonDataSource. The current example imports the counties as a dictionary. Of the many geographic formats a user can have as a starting point, a dictionary is probably not one of them. This example probably comes from the time before the GeoJsonDataSource was added to Bokeh. The current example is a good demonstration of how to do it in a 'custom' way, by separating rings with nan's etc. But that's not very user friendly, especially if they lack knowledge about geographic data formats. Since this is the only example showing geographical polygons, its probably best if its as easy as it gets. If needed, the current example might be kept for more advanced use cases, but removing it from the gallery might help steering new users to start simple with the GeoJsonDataSource. Changing the example is simple, i wouldn't mind doing that. Only i'm not sure about adding the sample data, it looks as if it needs to be added to an amazon storage? And also regarding the original source and its licensing etc about distributing the data?
Regards,
Rutger
On Tuesday, October 25, 2016 at 2:32:45 PM UTC+2, Bryan Van de ven wrote:
If there are docs and/or an example that could help to make this clearer for other users from the start, a contribution would be very welcome. :)
Thanks,
Bryan On Oct 25, 2016, at 07:27, Saad Syed <[email protected]> wrote:

Thank you everyone, this works :)
On Tue, Oct 25, 2016 at 2:23 AM, Sarah Bird - Continuum <[email protected]> wrote:
Looking at an example, I think it's meant to be GeoJSONDataSource(geojson=
geojson)
so in your case: GeoJSONDataSource(geojson=f.

read())
On 10/24/16 7:41 PM, [email protected] wrote:

I used [www.mapshaper.org](http://www.mapshaper.org) to convert the shape file to GeoJson and then used the GeoJSONDataSource function as shown below:
with open(r'newengland/NE.json') as f:
geo_source= GeoJSONDataSource(f.read())
I get the following error:
ValueError: expected a dict or pandas.DataFrame, got {"type":"GeometryCollection","
geometries":[
{"type":"Polygon","
coordinates":[[[232399.5,1228114.129999999],[239250.3900000006,1114760.25],[241509.84000000358,1060190.379999999],[242510.95000000298,1035819.629999999],[244487.77000000328,1033290.379999999],[243315.2199999988,1031397.5599999987],[242990.5300000012,1012991.879999999],[248619.43999999762,1003543.879999999],[255794.0799999982,998509],[254451.52000000328,990049.629999999],[255451.47999999672,985912.8099999987],[254731.8900000006,987060],[250068.70000000298,986519.5599999987],[250913.1400000006,983617.25],[248417.77000000328,981650.8099999987],[247425,977184.5],[250389.43999999762,979182.3099999987],[253063.09000000358,977851.4400000013],[252719.8599999994,984330.5],[255897.4200000018,984705.1900000013],[261354.88000000268,980372.8099999987],[260211.
04999999702,977621.0599999987]
is this not the format of GeoJson that works ?
Thanks
On Monday, October 24, 2016 at 8:14:30 AM UTC-4, Rutger Kassies wrote:
Hey,
There are several problems you are facing. Not all are Bokeh related. 1. Your call to json.dumps doesn't actually read the json file, it only return the filename you passed, as json. And your file is already json, so you dont need the json-module, reading in the contents of the file is sufficient. So you want to change this to something like:
with open(r'newengland/NEWENGLAND_    POLY.json', 'r') as f:
geo_source = GeoJSONDataSource(geojson=f.


read())
You can even skip the file creation/reading, if change your function so it returns the actual json, instead of the filename.
2. You have a polygon geosjon, and are trying to use the example for points. You cant plot polygons when using p.circle like you do now. Also, the column name changes for polygons/line to 'xs', 'ys' instead of 'x' and 'y' for points. So change your plotting command to:
p.patches('xs', 'ys', fill_color="red", line_color="black", line_width=1.5, source=geo_source)
3. I think your function to convert the shapefile to json is not correct, i don't know why, and also don't have the time to look into it right now. But when i use 'ogr2ogr' to convert the shapefile to json, and load it as described by point 1, it works fine for me. Ogr2ogr is a command line utility which is part of GDAL. But you can also use a program like QGIS to do this type of conversion.
You can view the notebook i used on nbviewer:
[http://nbviewer.jupyter.org/gist/RutgerK/c8e5b573729d7111452c0623defc2c9b](http://nbviewer.jupyter.org/gist/RutgerK/c8e5b573729d7111452c0623defc2c9b)

Regards,
Rutger
On Sunday, October 23, 2016 at 12:52:53 AM UTC+2, ss wrote:
Can some one please help me out with this question. I am stuck.
I am trying to convert New England Shapefile to the latest standard of Geo Jason and then plot the shape file.
[http://stackoverflow.com/q/40197793/7058682](http://stackoverflow.com/q/40197793/7058682)
-- You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit [https://groups.google.com/a/continuum.io/d/msgid/bokeh/1b195f30-48c3-499a-a8f6-ee8610072d5a%40continuum.io](https://groups.google.com/a/continuum.io/d/msgid/bokeh/1b195f30-48c3-499a-a8f6-ee8610072d5a%40continuum.io).
For more options, visit [https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout).





-- Sarah Bird
Developer, Bokeh -- You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit [https://groups.google.com/a/continuum.io/d/msgid/bokeh/fe81ce57-ca64-bc94-1e80-db9339d6a6e9%40continuum.io](https://groups.google.com/a/continuum.io/d/msgid/bokeh/fe81ce57-ca64-bc94-1e80-db9339d6a6e9%40continuum.io)
.
For more options, visit [https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)

.
-- You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit [https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAGPDHyv0w%3DSvEU%2BjChcG09uwTzU7zs-a%3DoUXaz5mX9zvaAczMQ%40mail.gmail.com](https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAGPDHyv0w%3DSvEU%2BjChcG09uwTzU7zs-a%3DoUXaz5mX9zvaAczMQ%40mail.gmail.com).
For more options, visit [https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout).
-- You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit [https://groups.google.com/a/continuum.io/d/msgid/bokeh/a2bfbe2a-8400-4f7a-91c9-6632b969b483%40continuum.io](https://groups.google.com/a/continuum.io/d/msgid/bokeh/a2bfbe2a-8400-4f7a-91c9-6632b969b483%40continuum.io).
For more options, visit [https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout).



Sarah Bird
Developer, Bokeh

    [
      <img alt="Continuum Analytics" src="https://lh6.googleusercontent.com/proxy/VYgVjggTk1hCXSN9wFkffE3I6kxTvJ51tT4KvDXOuKbs1WyFG66k7kt2-vkDimbyxfWtP-d1paJmstMYhPPnDYSUF4rLPoYM2GM2QFM=w5000-h5000" style="width:150px;min-height:30px" width="150" height="30">
    ](http://continuum.io)

Hi Rutger,

  > But actually i've been ignoring Bokeh for almost a year now,

only occasionally checking out some new features out of curiosity.
The only reason for this, and sorry for bringing it up again, is
that the majority of my use cases would involve polygons with
holes. Often shapes of agricultural fields etc, but also for
things like filled contours for which a rasterizing approach would
be a poor workaround.

  Well, you seem to pop up at the right time. Sorry for not having

made progress on patches with holes. It’s certainly not a
technical problem. The hold-up is that Bryan and I can’t agree on
an API for describing patches with holes.

  > I'm sure i'm not the only one wanting to use Bokeh for GIS

related plotting.

You most certainly are not!

Having said that, maybe we could build a Bokeh Extension from the

old work. So that the API isn’t in Bokeh core, but you have
something you can use. Last time we were discussing this, Bokeh
didn’t have a Extensions capabilities.

Best,

Bird
···

On 10/26/16 12:25 AM, Rutger Kassies
wrote:

Thanks Sarah,

    But actually i've been ignoring Bokeh for almost a year now,

only occasionally checking out some new features out of
curiosity. The only reason for this, and sorry for bringing it
up again, is that the majority of my use cases would involve
polygons with holes. Often shapes of agricultural fields etc,
but also for things like filled contours for which a rasterizing
approach would be a poor workaround.

    Now from what i've seen of the issues/pr's on Github about this,

it seemed as if you solved it already for 99%. Whats the current
status of this? Are there any issues holding it back? For
complicated Javascripts things i wont be of much use, but
perhaps others are. I’m sure i’m not the only one wanting to use
Bokeh for GIS related plotting.

    Regards,

    Rutger







    On Tuesday, October 25, 2016 at 7:22:28 PM UTC+2, Sarah Bird

wrote:

Rutger,

          Just wanted to say thanks for continuing to chip in on

geo related questions on the mailing list, and helping
folks (including me) beyond the scope of bokeh problems.

Best,

        Bird

On 10/25/16 9:30 AM, Bryan Van de Ven wrote:


AFAIK the data is free to use, it was on a public google sheet, I'll have to try and dig up the original provenance. But if you make an example and data file, I will do that, and then we can also handle the upload to S3.
Thanks,
Bryan
On Oct 25, 2016, at 8:20 AM, Rutger Kassies <[email protected]> wrote:
The docs are fine i think, but perhaps the "us_counties" sample data in Bokeh can (also) be provided as a geojson. Then the Texas unemployment example can be updated so it uses the GeoJsonDataSource. The current example imports the counties as a dictionary. Of the many geographic formats a user can have as a starting point, a dictionary is probably not one of them. This example probably comes from the time before the GeoJsonDataSource was added to Bokeh. The current example is a good demonstration of how to do it in a 'custom' way, by separating rings with nan's etc. But that's not very user friendly, especially if they lack knowledge about geographic data formats. Since this is the only example showing geographical polygons, its probably best if its as easy as it gets. If needed, the current example might be kept for more advanced use cases, but removing it from the gallery might help steering new users to start simple with the GeoJsonDataSource. Changing the example is simple, i wouldn't mind doing that. Only i'm not sure about adding the sample data, it looks as if it needs to be added to an amazon storage? And also regarding the original source and its licensing etc about distributing the data?
Regards,
Rutger
On Tuesday, October 25, 2016 at 2:32:45 PM UTC+2, Bryan Van de ven wrote:
If there are docs and/or an example that could help to make this clearer for other users from the start, a contribution would be very welcome. :)
Thanks,
Bryan On Oct 25, 2016, at 07:27, Saad Syed <[email protected]> wrote:

Thank you everyone, this works :)
On Tue, Oct 25, 2016 at 2:23 AM, Sarah Bird - Continuum <[email protected]> wrote:
Looking at an example, I think it's meant to be GeoJSONDataSource(geojson=
geojson)
so in your case: GeoJSONDataSource(geojson=f.

read())
On 10/24/16 7:41 PM, [email protected] wrote:

I used [www.mapshaper.org](http://www.mapshaper.org) to convert the shape file to GeoJson and then used the GeoJSONDataSource function as shown below:
with open(r'newengland/NE.json') as f:
geo_source= GeoJSONDataSource(f.read())
I get the following error:
ValueError: expected a dict or pandas.DataFrame, got {"type":"GeometryCollection","
geometries":[
{"type":"Polygon","
coordinates":[[[232399.5,1228114.129999999],[239250.3900000006,1114760.25],[241509.84000000358,1060190.379999999],[242510.95000000298,1035819.629999999],[244487.77000000328,1033290.379999999],[243315.2199999988,1031397.5599999987],[242990.5300000012,1012991.879999999],[248619.43999999762,1003543.879999999],[255794.0799999982,998509],[254451.52000000328,990049.629999999],[255451.47999999672,985912.8099999987],[254731.8900000006,987060],[250068.70000000298,986519.5599999987],[250913.1400000006,983617.25],[248417.77000000328,981650.8099999987],[247425,977184.5],[250389.43999999762,979182.3099999987],[253063.09000000358,977851.4400000013],[252719.8599999994,984330.5],[255897.4200000018,984705.1900000013],[261354.88000000268,980372.8099999987],[260211.
04999999702,977621.0599999987]
is this not the format of GeoJson that works ?
Thanks
On Monday, October 24, 2016 at 8:14:30 AM UTC-4, Rutger Kassies wrote:
Hey,
There are several problems you are facing. Not all are Bokeh related. 1. Your call to json.dumps doesn't actually read the json file, it only return the filename you passed, as json. And your file is already json, so you dont need the json-module, reading in the contents of the file is sufficient. So you want to change this to something like:
with open(r'newengland/NEWENGLAND_    POLY.json', 'r') as f:
geo_source = GeoJSONDataSource(geojson=f.


read())
You can even skip the file creation/reading, if change your function so it returns the actual json, instead of the filename.
2. You have a polygon geosjon, and are trying to use the example for points. You cant plot polygons when using p.circle like you do now. Also, the column name changes for polygons/line to 'xs', 'ys' instead of 'x' and 'y' for points. So change your plotting command to:
p.patches('xs', 'ys', fill_color="red", line_color="black", line_width=1.5, source=geo_source)
3. I think your function to convert the shapefile to json is not correct, i don't know why, and also don't have the time to look into it right now. But when i use 'ogr2ogr' to convert the shapefile to json, and load it as described by point 1, it works fine for me. Ogr2ogr is a command line utility which is part of GDAL. But you can also use a program like QGIS to do this type of conversion.
You can view the notebook i used on nbviewer:
[http://nbviewer.jupyter.org/gist/RutgerK/c8e5b573729d7111452c0623defc2c9b](http://nbviewer.jupyter.org/gist/RutgerK/c8e5b573729d7111452c0623defc2c9b)

Regards,
Rutger
On Sunday, October 23, 2016 at 12:52:53 AM UTC+2, ss wrote:
Can some one please help me out with this question. I am stuck.
I am trying to convert New England Shapefile to the latest standard of Geo Jason and then plot the shape file.
[http://stackoverflow.com/q/40197793/7058682](http://stackoverflow.com/q/40197793/7058682)
-- You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit [https://groups.google.com/a/continuum.io/d/msgid/bokeh/1b195f30-48c3-499a-a8f6-ee8610072d5a%40continuum.io](https://groups.google.com/a/continuum.io/d/msgid/bokeh/1b195f30-48c3-499a-a8f6-ee8610072d5a%40continuum.io).
For more options, visit [https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout).





-- Sarah Bird
Developer, Bokeh -- You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit [https://groups.google.com/a/continuum.io/d/msgid/bokeh/fe81ce57-ca64-bc94-1e80-db9339d6a6e9%40continuum.io](https://groups.google.com/a/continuum.io/d/msgid/bokeh/fe81ce57-ca64-bc94-1e80-db9339d6a6e9%40continuum.io)
.
For more options, visit [https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)

.
-- You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit [https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAGPDHyv0w%3DSvEU%2BjChcG09uwTzU7zs-a%3DoUXaz5mX9zvaAczMQ%40mail.gmail.com](https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAGPDHyv0w%3DSvEU%2BjChcG09uwTzU7zs-a%3DoUXaz5mX9zvaAczMQ%40mail.gmail.com).
For more options, visit [https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout).
-- You received this message because you are subscribed to the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit [https://groups.google.com/a/continuum.io/d/msgid/bokeh/a2bfbe2a-8400-4f7a-91c9-6632b969b483%40continuum.io](https://groups.google.com/a/continuum.io/d/msgid/bokeh/a2bfbe2a-8400-4f7a-91c9-6632b969b483%40continuum.io).
For more options, visit [https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout).


Sarah Bird
Developer, Bokeh

    [
      ![Continuum Analytics](https://lh6.googleusercontent.com/proxy/VYgVjggTk1hCXSN9wFkffE3I6kxTvJ51tT4KvDXOuKbs1WyFG66k7kt2-vkDimbyxfWtP-d1paJmstMYhPPnDYSUF4rLPoYM2GM2QFM=w5000-h5000)
    ](http://continuum.io)

– You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]
.
To post to this group, send email to [email protected]
.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/ecdb573b-ffbd-45a5-a694-630a8fe9e0fd%40continuum.io
.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Sarah Bird
Developer, Bokeh


Continuum Analytics