mac os 安装 s2geometry + pywarps2
生活随笔
收集整理的这篇文章主要介绍了
mac os 安装 s2geometry + pywarps2
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
目录
- mac os 安装 s2geometry + pywarps2
- 1. 安装s2geometry
- 1.1 安装gtest
- 1.2 安装swig
- 1.3 安装s2geometry
- 2. 安装python相关依赖
- 3. 代码测试
- 4. 相关参考
mac os 安装 s2geometry + pywarps2
因python项目需要使用s2geometry,安装遇到一些问题与解决的记录。
1. 安装s2geometry
如果没有cmake需要先安装cmake
brew install cmake1.1 安装gtest
安装之前需要先安装gtest
git clone https://github.com/google/googletest.git cd googletest mkdir build cd build cmake -DCMAKE_CXX_COMPILER="c++" -DCMAKE_CXX_FLAGS="-std=c++11 -stdlib=libc++" -DCMAKE_INSTALL_PREFIX=/usr .. make sudo make install1.2 安装swig
brew install swig先安装swig后,下一步安装s2geometry会自动将pywraps2的module装到python site-package里。
1.3 安装s2geometry
安装前检查一下python3版本号,现在测试python3.7可以成功,但python3.8会提示"Undefined symbols for architecture x86_64"错误。
git clone https://github.com/google/s2geometry.git cd s2geometry mkdir build cd build ## -D 参数根据自己系统安装的相关路进行定义 cmake -DOPENSSL_ROOT_DIR=/usr/local/Cellar/openssl@1.1/1.1.1g -DGTEST_ROOT=/usr/src/googletest/googletest -DCMAKE_INSTALL_PREFIX=/usr .. make sudo make installOPENSSL_ROOT_DIR 和 GTEST_ROOT 可以根据自己的安装路径修改。
另外需要注意看见以下两条输出日志确认pywraps2安装成功:
-- Installing: /usr/lib/python3.7/site-packages/_pywraps2.so -- Installing: /usr/lib/python3.7/site-packages/pywraps2.py2. 安装python相关依赖
## 先通过brew安装相关依赖 brew install proj geospip install jupyter pip install cython pip install numpy## 安装Cartopy不能直接安装,会报错找不到proj_api.h ## 解决方法参考自:https://github.com/SciTools/cartopy/issues/1288 export CFLAGS="-I/usr/local/include" export LDFLAGS="-L/usr/local/lib" pip install git+https://github.com/snowman2/cartopy.git pip install matplotlib scikit-learn scipy Shapely folium geojson3. 代码测试
import folium import pywraps2 as s2# create a rect in s2 region_rect = s2.S2LatLngRect(s2.S2LatLng.FromDegrees(48.831776, 2.222639),s2.S2LatLng.FromDegrees(48.902839, 2.406))# ask s2 to create a cover of this rect coverer = s2.S2RegionCoverer() coverer.set_min_level(10) coverer.set_max_level(30) coverer.set_max_cells(60) covering = coverer.GetCovering(region_rect) print([c.ToToken() for c in covering])# create a map map_osm = folium.Map(location=[48.86, 2.3],zoom_start=12, tiles='Stamen Toner')# get vertices from rect to draw them on map rect_vertices = [] for i in [0, 1, 2, 3, 0]:vertex = region_rect.GetVertex(i)rect_vertices.append([vertex.lat().degrees(), vertex.lng().degrees()])# draw the cells style_function = lambda x: {'weight': 1, 'fillColor':'#eea500'} for cellid in covering:cell = s2.S2Cell(cellid)vertices = []for i in range(0, 4):vertex = cell.GetVertex(i)latlng = s2.S2LatLng(vertex)vertices.append([latlng.lng().degrees(),latlng.lat().degrees()])gj = folium.GeoJson({ "type": "Polygon", "coordinates": [vertices]}, style_function=style_function)gj.add_children(folium.Popup(cellid.ToToken()))gj.add_to(map_osm)# warning PolyLine is lat,lng based while GeoJSON is not ls = folium.PolyLine(rect_vertices, color='red', weight=2) ls.add_children(folium.Popup("shape")) ls.add_to(map_osm)map_osm4. 相关参考
S2 Geometry Library building
Google S2 with Python & Jupyter
How to install GTest on Mac OS X with homebrew?
S2 compatible with python3?
总结
以上是生活随笔为你收集整理的mac os 安装 s2geometry + pywarps2的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 验证码识别逻辑回归案例
- 下一篇: [渝粤教育] 西南科技大学 园艺作物高产