【小沐学GIS】blender导入OpenTopography地形数据(BlenderGIS、OSM、Python)

文章目录

  • 1、简介
    • 1.1 blender
    • 1.2 OpenStreetMap地图
  • 2、BlenderGIS
    • 2.1 下载BlenderGIS
    • 2.2 安装BlenderGIS
    • 2.3 申请opentopography的key
    • 2.4 抓取卫星地图
    • 2.5 生成高度图
    • 2.6 获取OSM数据
  • 结语

1、简介

1.1 blender

https://www.blender.org/
Blender 是一款免费的开源 3D 创作套件,支持整个 3D 管道。使用它强大的工具,你可以轻松创建惊人的 2D/3D 内容。

Blender是一款三维图形图像软件,提供从建模、动画、材质、渲染、到音频处理、视频剪辑等一系列动画短片制作解决方案。Blender拥有方便在不同工作下使用的多种用户界面,内置绿屏抠像、摄像机反向跟踪、遮罩处理、后期结点合成等高级影视解决方案。
在这里插入图片描述

  • blender下载:
    https://www.blender.org/download/
    在这里插入图片描述

1.2 OpenStreetMap地图

https://www.openstreetmap.org/
https://extract.bbbike.org/
Openstreetmap是一种开源地图,简称osm。其包含图层主要有高速公路、铁路、水系、水域、建筑、边界、建筑物等图层。地址为:https://www.openstreetmap.org
在这里插入图片描述

2、BlenderGIS

https://github.com/domlysz/BlenderGIS

在这里插入图片描述

2.1 下载BlenderGIS

git clone https://github.com/domlysz/BlenderGIS.git

下载如下:
在这里插入图片描述

2.2 安装BlenderGIS

在这里插入图片描述
运行时报错如下:
在这里插入图片描述
如果点击完报下图的错误提示就说明缺少ImageIO文件。去下边的地址下载即可,粘贴到blender安装目录–下方地址。如果没有freeimage文件夹。创建即可

....../BlenderGIS/core/lib/imageio/resources/freeimage/

在下面地址下载freeimage的dll文件:
https://github.com/imageio/imageio-binaries/tree/master/freeimage
https://freeimage.sourceforge.io/download.html

python.exe -m pip install imageio

2.3 申请opentopography的key

https://opentopography.org/
Open Topography是一个提供高空间分辨率的地形数据和操作工具的门户网站。,我们可以通过Open Topography下载LiDAR数据,这些数据主要是包括:美国、加拿大、澳大利亚、巴西、海地、墨西哥和波多黎各等。

Open Topography可以提供我们10个最好的免费的全球栅格和矢量数据源。开放式社区系统是它的优点。通过注册账号后,就可以访问社区更多的功能。此外,它的另一个特点是,它可以提供目前相对最大的、开放式的、免费的LiDAR数据,展示的形式漂亮、整洁。

在这里插入图片描述
为了防止机器人攻击,国外很多网站都使用了 Google reCaptcha 验证码。reCaptcha 对于国外用户非常的友好,但是…对于国内用户就不怎么友好了。究其原因,则是国内网络全线屏蔽 Google 服务,导致 reCaptcha 完全加载不出来。
本方案基于 Header Editor 插件。因此,您需要先在您的浏览器中安装这个插件。
第一步:下载插件
下载离线文件,Header Editor 离线安装文件。
第二步:配置插件
打开 Header Editor 插件的配置页面,选择“导入和导出”选项,并输入URL为https://azurezeng.github.io/static/HE-GoogleRedirect.json,点击下载。
接下来你应该会在“导入”看到相关规则(如果之前导入过,“操作”中的“添加”会显示为“覆盖已有”)。选择“保存”即可。

2.4 抓取卫星地图

点击GIS -> Web geodata -> basemap 就可以抓取需要的地图。
在这里插入图片描述
选择地图来源如下:
在这里插入图片描述
显示地图如下:
在这里插入图片描述
鼠标左键是拖动,鼠标中键是地图级别放大。如果有的瓦片没有刷新出来,可以单击鼠标左键。就会重新载入瓦片。
按E键可以将视口显示的范围内的地图瓦片抓取下来。
添加国内地图

在basemaps文件夹里中servicesDefs.py的文件添加国内地图。
在这里插入图片描述

2.5 生成高度图

按E键可以将视口显示的范围内的地图瓦片抓取下来。
在这里插入图片描述
点击GIS -》Web geodata -> get elevation 载入高度图信息。
在这里插入图片描述
生成地形模型如下:
在这里插入图片描述
然后导出模型为本地文件:
在这里插入图片描述

2.6 获取OSM数据

除了地图之外还可以获取基于OSM(open stream map)网站的 路网信息、建筑体块信息。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

也可以去 OSM网站单独下载楼体块、道路资源 导入到blender中。
blender中导入.osm资源。
在这里插入图片描述

注意:想要导出这些地图和资源 需要将资源塌陷为网格 不然导出的会是空物体。
选中地图 左上角 物体–应用–可视集合体->网格。
在这里插入图片描述

转成网格体之后就可以将物体导出FBX或者OBJ 或者网页最常用的gltf 。

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/439563.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IMS添加实体按键流程 - Android14

IMS添加实体按键流程 - Android14 1、实体按键信息(Mi 9 左侧实体按键)2、硬件添加2.1 内核添加设备节点2.2 Generic.kl映射文件2.3 映射文件文件加载loadKeyMapLocked2.4 addDeviceLocked 添加设备相关对象 3、keycode对应scankode4、KeyEvent.java 添加…

【星汇极客】手把手教学STM32 HAL库+FreeRTOS之创建工程(0)

前言 本人是一名嵌入式学习者,在大学期间也参加了不少的竞赛并获奖,包括但不限于:江苏省电子设计竞赛省一、睿抗机器人国二、中国高校智能机器人国二、嵌入式设计竞赛国三、光电设计竞赛国三、节能减排竞赛国三。 后面会经常写一下博客&…

服务器conda环境安装rpy2

参考博客 https://stackoverflow.com/questions/68936589/how-to-select-r-installation-when-using-rpy2-on-conda 现在我遇到这样一个问题,服务器系统环境没有R(没有权限安装),我只能在minconda的conda环境中使用R, 使用方法如下 我现在…

(11)MATLAB莱斯(Rician)衰落信道仿真2

文章目录 前言一、莱斯衰落信道仿真模型二、仿真代码与结果1.仿真代码2.仿真结果画图 三、后续:四、参考文献: 前言 首先给出莱斯衰落信道仿真模型,该模型由直射路径分量和反射路径分量组成,其中反射路径分量由瑞利衰落信道模型构…

Art. 1 | 信号、信息与消息的区别及其在通信中的应用

信号、信息与消息的区别及其在通信中的应用 通信技术是现代社会的基石,其广泛应用于日常生活的各个方面。从手机、互联网到企业信息管理,通信系统无处不在。在这一技术领域中,信号、信息和消息是三大基础概念,支撑着整个通信系统…

云计算Openstack Glance

OpenStack Glance(或称为Glance,但通常OpenStack官方文档中使用的是“Glance”作为项目代号)是OpenStack的镜像服务组件,为创建虚拟机提供镜像服务。以下是对OpenStack Glance的详细解析: 一、基本功能 Glance主要提…

【AI人工智能】文心智能体,双人冒险游戏智能体创作分享

背景 最近半年,“AI agent”(智能体)这一词汇变得非常热门。许多人以为创建自己的智能体会很复杂,实际上,现有的平台已经大大降低了操作门槛。只要有创意,几乎每个人都可以轻松创建属于自己的智能体。今天…

Linux下静态库与动态库制作及分文件编程

Linux下静态库与动态库制作及分文件编程 文章目录 Linux下静态库与动态库制作及分文件编程1.分文件编程1.1优点1.2操作逻辑1.3示例 2.Linux库的概念3.静态库的制作与使用3.1优缺点3.2命名规则3.3制作步骤3.4开始享用 4.动态库的制作与使用4.1优缺点4.2动态库命名规则4.3制作步骤…

Uniapp API

1.uni.showToast 显示消息提示框 unishowToast({ obj参数 }) 2.uni.showLoading 显示 loading 提示框, 需主动调用 uni.hideLoading 才能关闭提示框。 3.uni.showModal 显示模态弹窗,可以只有一个确定按钮,也可以同时有确定和取消按钮。类似于一个A…

VLAN:虚拟局域网

VLAN:虚拟局域网 交换机和路由器协同工作后,将原先的一个广播域,逻辑上,切分为多个广播域。 第一步:创建VLAN [SW1]dispaly vlan 查询vlan VID(VLAN ID):用来区分和标定不同的vlan 由12位二进制构成 范围: 0-4…

算法笔记(十一)——优先级队列(堆)

文章目录 最后一块石头的重量数据流中的第 K 大元素前K个高频单词数据流的中位数 优先级队列是一种特殊的队列,元素按照优先级从高到低(或从低到高)排列,高优先级的元素先出队,可以用 堆来实现 堆是一种二叉树的结构&…

HTB:Preignition[WriteUP]

连接至HTB服务器并启动靶机 靶机IP:10.129.157.49 分配IP:10.10.16.12 1.Directory Brute-forcing is a technique used to check a lot of paths on a web server to find hidden pages. Which is another name for this? (i) Local File Inclusion, (…

如何安全地大规模部署 GenAI 应用程序

大型语言模型和其他形式的生成式人工智能(GenAI) 的广泛使用带来了许多组织可能没有意识到的安全风险。幸运的是,网络和安全提供商正在寻找方法来应对这些前所未有的威胁。 随着人工智能越来越深入地融入日常业务流程,它面临着泄露专有信息、提供错误答…

2.创建第一个MySQL存储过程(2/10)

引言 在现代数据库管理中,存储过程扮演着至关重要的角色。它们是一组为了执行特定任务而编写的SQL语句集合,这些语句被保存在数据库中,并且可以被多次调用执行。存储过程不仅可以提高数据库操作的效率,还能增强数据的安全性和一致…

Docker 启动 Neo4j:详细配置指南和浏览器访问

Docker 启动 Neo4j:详细配置指南和浏览器访问 文章目录 Docker 启动 Neo4j:详细配置指南和浏览器访问一 Neo4j compose 得 yml 配置二 配置描述三 浏览器访问 这篇文章详细介绍了如何使用 Docker Compose 启动 Neo4j 数据库,包括 docker-com…

八大排序--01冒泡排序

假设有一组数据 arr[]{2,0,3,4,5,7} 方法:开辟两个指针,指向如图,前后两两进行比较,大数据向后冒泡传递,小数据换到前面。 一次冒泡后,数组中最大…

C++ | Leetcode C++题解之第459题重复的子字符串

题目&#xff1a; 题解&#xff1a; class Solution { public:bool kmp(const string& query, const string& pattern) {int n query.size();int m pattern.size();vector<int> fail(m, -1);for (int i 1; i < m; i) {int j fail[i - 1];while (j ! -1 &…

java基础_异常总结详解

1 列举一些列举常见的运行时异常 运行时异常都是 RuntimeException 子类异常 NullPointerException - 空指针异常 ClassCastException - 类转换异常 IndexOutOfBoundsException - 下标越界异常 ArithmeticException - 计算异常 IllegalArgumentException - 非法参数异常 Numb…

Elasticsearch:使用 LLM 实现传统搜索自动化

作者&#xff1a;来自 Elastic Han Xiang Choong 这篇简短的文章是关于将结构化数据上传到 Elastic 索引&#xff0c;然后将纯英语查询转换为查询 DSL 语句&#xff0c;以使用特定过滤器和范围搜索特定条件。完整代码位于此 Github repo 中。 首先&#xff0c;运行以下命令安装…

小阿轩yx-案例:jenkins部署Maven和NodeJS项目

小阿轩yx-案例&#xff1a;jenkins部署Maven和NodeJS项目 前言 在 Java 项目开发中&#xff0c;项目的编译、测试、打包等是比较繁琐的&#xff0c;属于重复劳动的工作&#xff0c;浪费人力和时间成本。以往开发项目时&#xff0c;程序员往往需要花较多的精力在引用 jar 包搭…