博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JupyterLab安装地图插件
阅读量:6948 次
发布时间:2019-06-27

本文共 3660 字,大约阅读时间需要 12 分钟。

hot3.png

JupyterLab安装地图插件

(本文所述软件还在发展之中,欢迎加入开源项目,提供建议、测试和开发。)

在中进行数据分析时,往往需要将数据叠加到地图上。简单的地图需求可以利用matplotlib/echarts/bokeh的地图显示功能,更为复杂的可以使用SuperMap/Leaflet/GMaps提供的地图插件,实现交互的地图操作,可以显示和操作大比例尺的专业级地图,甚至调用专业GIS服务进行空间分析,当然这操作起来也会更复杂一些。

  • 上图来自于Kubernetes和JupyterLab支持,

1、iClientPy

iClientPy是由超图软件公司(http://www.supermap.com)开发的一个开源项目,可以将SuperMap iServer和Online服务通过python API访问,并支持Jupyter的编程和集成化分析。目前该项目还在开发之中,尚未形成发布版本(预计2018年底发布)。项目地址如下:

  • 文档,
  • 源码,

 

  • fef5c7fc8432d48c46adc54486918a94d69.jpg

由于conda安装国内访问较慢,可以加入镜像站,配置第三方库的依赖源。这里使用清华大学的源(也可是国内其他镜像源):

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/conda config --set show_channel_urls yes

执行下面命令:

conda install -y -c http://iclientpy.supermap.io/conda/channel iclientpy

目前安装后地图显示不出来,还需要改进。

2、ipyleaflet

ipyleaflet是基于leaflet的地图显示模块,提供了jupyterlab支持。

  • ipyleaflet文档,
  • GeoJson绘制,
  • 流体地图可视化,

安装到jupyterlab,执行:

conda install -c conda-forge nodejs=8.10.0conda install -c conda-forge ipyleafletjupyter labextension install jupyter-leaflet

一些用户发现需要 jupyterlab-manager,才能显示地图。 查看 和 了解更多细节。

使用命令 jupyter labextension list 查看 jupyter-widgets 是否安装。如果没有,安装方法如下:

jupyter labextension install @jupyter-widgets/jupyterlab-manager

目前我在Kubernetes里安装jupyterlab,使用的all-in-one-spark的jupyter镜像,但是安装后地图显示不出来,还需要改进。

倒腾了一番后,运行nodejs降级到10以下,运行 jupyter lab build,然后就可以显示了。不过发现,Ubuntu上的 FireFox还是显示不出来,通过MacOS上的FireFox却是可以的。

3、gmaps

是基于Google Maps的地图显示插件,需要google maps API的访问token。

  • 文档,
  • 源码,

为了在JupyterLab中使用jupyter-gmaps需要安装 jupyter widgets 扩展。

$ jupyter labextension install @jupyter-widgets/jupyterlab-manager

然后通过pip安装jupyter-gmaps:

$ pip install gmaps

下次启动 JupyterLab时,会提示需要 “rebuild JupyterLab: this is necessary to include the jupyter-gmaps frontend code into your JupyterLab installation”。

在命令行运行:

$ jupyter lab build

因为国内访问网络原因和需要token,暂时还没有测试过。

4、jupyter-renderer

jupyter-renderer是jupyter官方的一个渲染架构,用于绘制更多类型的cell输出。

目前GeoJSON已经可以支持用于绘图了,主要是基于leaflet的。

  • GeoJSON extension
jupyter labextension install @jupyterlab/geojson-extension
  • 流体地图显示
jupyter labextension install jupyterlab_velocity

同样的问题,在JupyterLab里图显示不出来。

5、MapBox

将MapBox嵌入到Notebook中进行地图显示。参见:

6、查看安装信息

启用nbextension扩展:

!jupyter nbextension enable --py widgetsnbextension --sys-prefix!jupyter nbextension enable --py --sys-prefix ipyleaflet

查看nbextension扩展列表:

!jupyter nbextension list

查看labextension扩展列表:

!jupyter labextension list

最后需要运行 jupyter lab build,才能真正启用扩展。

不过,我在这一步运行时,一直处于运行状态,然后显示地图时也显示不出来,好像提示webpack的“_.extend is not a function”,后面再慢慢研究。

尝试修复bug:

npm i -y leaflet@~1.0.3npm i -y jupyter-leaflet

将“parallel: true,”改为“parallel: false,”,如下:

ovyan@jupyter-supermap:/opt/conda/share/jupyter/lab/staging$ cat webpack.prod.config.jsvar UglifyJSPlugin = require('uglifyjs-webpack-plugin');var merge = require('webpack-merge');var webpack = require('webpack');var common = require('./webpack.config');module.exports = merge(common, {  devtool: 'source-map',  plugins: [    new UglifyJSPlugin({      sourceMap: true,      parallel: true,      uglifyOptions: {        beautify: false,        ecma: 6,        mangle: true,        compress: false,        comments: false,      }    }),    new webpack.DefinePlugin({      'process.env.NODE_ENV': JSON.stringify('production')    })  ]});jovyan@jupyter-supermap:/opt/conda/share/jupyter/lab/staging$ nano webpack.prod.config.js

对于上面的问题,在互联网上搜索一番无果,然后到 上提了个issue,晚上得到了 的回答,说 “Use node version < 10. JupyterLab does not work with node 10 currently.”,然后执行 conda install nodejs=8.10.0 从 10.4.0 降级下来,再安装就ok了。真是“踏遍世界无觅处,得来也需费功夫”,难者不会、会者不难啊!

转载于:https://my.oschina.net/u/2306127/blog/1859080

你可能感兴趣的文章
新浪微博基于混合云的PHP服务化与弹性扩容
查看>>
centOS7封装
查看>>
通过php 执行git pull 自动部署
查看>>
google乱码 IE浏览器 英文
查看>>
Linux查看系统配置常用命令
查看>>
销售型网站把握的设计要点
查看>>
我的友情链接
查看>>
mongodb数据备份和还原
查看>>
VM虚拟机下安装Centos7.0图文教程
查看>>
我的友情链接
查看>>
编译安装php-5.6.19出现的问题configure: error: mysql configure failed. Please check config.log...
查看>>
iOS 如何在一个应用程序中调用另一个应用程序
查看>>
FTP数据备份
查看>>
第三方登录之QQ登录(一)——QQ互联开放平台新建应用
查看>>
Ubuntu上搭建Hadoop环境
查看>>
是运维就必须硬起来,插件化运维系统思路
查看>>
ibatis bug
查看>>
L7 linux shell编程练习
查看>>
开会 顺口溜
查看>>
用PHP和树莓派开发一个比特币/以太坊交易机器人
查看>>