【04】复用紧凑型v2栅格切片

栅格切片分三种类型:

  • 松散型、
  • 紧凑型v1
  • 紧凑型v2

 见链接:【01】栅格切片类型-优快云博客

 说明:Linux环境或者Windows环境都可以参考类似的思路复用 

前提条件:将旧服务切片服务缓存文件拷贝到新机器磁盘充足的路径

  • 先发布一个手动缓存的切片服务,

手动发布一个手动缓存服务,类型可以选择复制所有数据下的“地图影像”,切片方案使用旧服务的切片方案,服务名字和旧环境一致。

  • 然后把服务停止,

  • 将切片拷贝到文件夹下;

提示:mv移动命令一定要提前在测试环境下验证,再来执行,以免出现低级错误。

mv  久的切片的路径   新的切片的路径

例如:

mv /sitedata/Map_darkhbmap/Layers/_alllayers/* /sitedata/usr/directories/geoscenecache/Map_darkhbmap/Layers/_alllayers

④更改Layers文件夹权限,例如:geoscene系统用户控制权限

# chown -R geoscene:yzr GeoSceneServer/

# chmod -R 755 GeoSceneServer/

  • 启动服务

<think> 我们正在讨论Titiler,一个用于栅格切片的工具。用户希望了解其使用方法、原理、应用场景等。请注意,用户之前的问题我的回答可能涉及相关内容,但当前对话历史中并没有直接关于Titiler的讨论(根据提供的上下文)。因此,我将基于Titiler的一般知识进行回答。 根据我的知识,Titiler是一个用于创建动态瓦片地图服务的Python库,它特别适用于处理栅格数据(如GeoTIFF文件)。它基于FastAPI框架,可以轻松部署为API服务,提供地图瓦片服务。 我们将从以下几个方面进行介绍: 1. Titiler的基本概念原理 2. Titiler的使用方法(包括部署调用) 3. Titiler的应用场景 注意:由于系统指令要求使用特定的格式,我们在回答中会遵守这些规则。 ### 1. Titiler的基本概念原理 Titiler(Tile + tiler)是一个用于生成地图瓦片的服务。其核心原理是将栅格数据(如卫星影像、高程模型等)按照地图瓦片的标准(如Web墨卡托投影,缩放级别,行列号)进行切片,并通过HTTP服务提供这些切片。 Titiler使用FastAPI构建,因此可以方便地部署为Web服务。它支持多种栅格数据格式,特别是通过`rio-tiler`库(Rasterio的扩展)读取处理栅格数据。 关键组件: - **rio-tiler**:用于从栅格文件中读取瓦片数据。 - **FastAPI**:提供API端点。 - **Pyramid**:处理瓦片金字塔结构(多分辨率层次)。 切片过程: 1. 接收到瓦片请求(包括Z/X/Y坐标或Quadkey)。 2. 根据请求的缩放级别位置,计算对应的地理范围。 3. 使用`rio-tiler`读取该地理范围内的栅格数据,并将其重采样到瓦片的标准尺寸(通常为256x256像素)。 4. 将处理后的数据编码为图像格式(如PNG、JPEG)或矢量瓦片格式(如MVT),然后返回。 ### 2. Titiler的使用方法 #### 部署Titiler服务 可以通过Docker或直接使用Python运行Titiler。以下是使用Docker的示例: ```bash docker run -p 8000:8000 ghcr.io/developmentseed/titiler:latest ``` 或者使用Python安装并运行: ```bash pip install titiler # 创建main.py from titiler.core.factory import TilerFactory from fastapi import FastAPI app = FastAPI() tiler = TilerFactory() app.include_router(tiler.router) # 然后启动服务:uvicorn main:app --reload --port 8000 ``` #### 调用Titiler服务 Titiler提供了多个端点,最常用的是用于获取瓦片的端点: - 获取瓦片:`/tiles/{z}/{x}/{y}.png?url={dataset_url}` 其中,`{z}/{x}/{y}`是瓦片的坐标,`url`参数指向栅格数据源(如云存储上的GeoTIFF文件)。 示例请求: ``` http://localhost:8000/tiles/10/512/512.png?url=https://path.to/your/file.tif ``` 此外,Titiler还支持多种其他操作,如颜色映射、裁剪、重投影等。 #### 使用Titiler的Python客户端 也可以使用Python客户端进行调用: ```python import requests url = "http://localhost:8000/tiles/10/512/512.png" params = { "url": "https://path.to/your/file.tif" } response = requests.get(url, params=params) # 然后将响应内容保存为图片或直接使用 ``` ### 3. Titiler的应用场景 1. **动态地图服务**:为WebGIS应用提供底图服务,特别是当数据需要频繁更新时,Titiler可以动态读取最新的栅格数据并切片2. **大数据栅格可视化**:对于大型栅格文件(如全球高程数据),Titiler可以按需读取部分数据,避免一次性加载整个文件。 3. **云原生地图服务**:Titiler支持读取存储在云存储(如AWS S3、Google Cloud Storage)上的栅格数据,非常适合云环境部署。 4. **科学研究**:在需要快速可视化科学数据集(如气象数据、环境监测数据)的场景中,Titiler提供了一种轻量级的解决方案。 ### 总结 Titiler是一个强大的栅格切片工具,它通过动态切片技术为用户提供高效的地图瓦片服务。其基于FastAPI的设计使得部署扩展变得简单,同时支持多种栅格数据源操作。 §§相关问题§§ 1. Titiler如何优化大型栅格文件的读取性能? 2. 在Titiler中如何自定义瓦片的样式(如颜色映射)? 3. Titiler支持哪些栅格数据格式? 4. Titiler与传统的预切片服务(如生成静态瓦片金字塔)相比有什么优势劣势? </think> ### Titiler栅格切片相关知识 Titiler 是一个基于 Python 的轻量级栅格瓦片生成服务,专为高效处理地理空间栅格数据(如 GeoTIFF)而设计。以下是核心知识点: #### 🌐 核心原理 1. **动态瓦片生成** Titiler 采用按需切片(on-the-fly tiling)而非预生成切片,当用户请求特定位置的瓦片时(通过 `z/x/y` 坐标),实时从源栅格数据中提取对应区域并重采样为 256×256 像素的瓦片。其流程可表示为: $$ \text{请求}(z,x,y) \rightarrow \text{读取地理范围} \rightarrow \text{重采样} \rightarrow \text{编码为PNG/JPEG} $$ 这种方法显著减少了存储开销[^1]。 2. **技术栈** - 后端框架:基于 **FastAPI**(高性能异步框架) - 栅格处理:依赖 **rio-tiler** 库(GDAL 的 Python 封装) - 数据源:支持本地文件、HTTP/S3/GCS 云存储、STAC API #### ️ 使用方法 1. **基本部署(Docker)** ```bash docker run -p 8000:8000 ghcr.io/developmentseed/titiler:latest ``` 2. **核心 API 端点** | 端点 | 功能描述 | 示例请求 | |------------------------|----------------------------|------------------------------------------| | `/tiles/{z}/{x}/{y}` | 获取 PNG/JPEG 瓦片 | `/tiles/10/512/512.png?url=s3://data.tif` | | `/cog/info` | 获取栅格元数据 | `/cog/info?url=https://example.com/dem.tif` | | `/cog/preview` | 生成全图缩略图 | `/cog/preview?rescale=0,1000` | 3. **Python 客户端调用** ```python import requests tile_url = "http://localhost:8000/tiles/14/8628/5355.jpg" params = {"url": "https://sentinel-cogs.s3.us-west-2.amazonaws.com/2020.tif"} response = requests.get(tile_url, params=params) # 保存瓦片 with open("tile.jpg", "wb") as f: f.write(response.content) ``` #### 🔍 应用场景 1. **动态地图服务** 为 WebGIS 应用(如 Leaflet/MapLibre)提供实时底图,适用于气象、灾害监测等高频更新数据。 2. **大规模栅格数据浏览** 无需预切片即可浏览 TB 级卫星影像(如 Landsat、Sentinel)。 3. **科学数据可视化** 支持高程数据(DEM)、气候模型输出等科学数据集的可视化渲染。 4. **云原生架构** 与 AWS S3、Google Cloud Storage 深度集成,适合 Serverless 部署[^1]。 #### ️ 性能优化特性 - **智能读取**:通过 COG(Cloud Optimized GeoTIFF)格式的概览图(overviews)加速数据读取 - **并行处理**:异步 I/O 处理并发瓦片请求 - **缓存机制**:支持 Redis 缓存高频访问瓦片 - **波段运算**:支持表达式计算(如 `expression=(B1-B2)/(B1+B2)`) #### 💡 典型工作流 ```mermaid graph LR A[栅格数据] --> B(存储为COG格式) B --> C[Titiler部署] C --> D{前端请求} D --> E[动态生成瓦片] E --> F[Web地图渲染] ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值