# Earth Data Server **Repository Path**: fengbuxi_admin/earth-data-server ## Basic Information - **Project Name**: Earth Data Server - **Description**: 二三維數據發佈引擎 - **Primary Language**: Python - **License**: 0BSD - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-12 - **Last Updated**: 2026-05-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Earth Data Server - 空间数据托管引擎 Earth Data Server是一个开源的空间数据托管引擎,支持常见的二维数据(SHP、遥感影像等)、三维数据(3DTiles、地形)等发布成在线服务供第三方调用。 ## 功能特性 ### 数据管理 - 支持多种空间数据格式的上传和管理 - 二维矢量数据:SHP、GeoJSON、KML、GML等 - 二维栅格数据:TIFF、JPG、PNG等遥感影像 - 三维数据:3DTiles、OSGB、OBJ、GLTF/GLB等 - 地形数据:DEM、DTM等 - 自动提取数据元数据 - 支持数据版本管理 ### 数据处理 - SHP数据转换为3DTiles - 遥感影像切片生成WMTS、XYZ等格式瓦片 - 3DTiles数据优化和压缩 - 地形数据生成和处理 ### 服务发布 - 支持WMS/WMTS服务发布 - 支持3DTiles流式服务发布 - 支持地形服务发布 - 提供标准化的空间数据服务接口 ### API接口 - RESTful API设计 - 支持数据上传、查询、处理和发布 - 提供API文档 - 支持CORS跨域访问 ## 技术栈 - **开发语言**:Python - **Web框架**:Flask、Flask-RESTX - **GIS核心库**:GDAL/OGR、Fiona、Rasterio、Shapely - **3D Tiles处理**:Py3D Tiles - **数据库**:SQLite/PostgreSQL - **数据处理**:NumPy、Pandas - **瓦片缓存**:TileCache ## 安装和使用 ### 环境要求 - Python 3.8+ - GDAL 3.0+ ### 安装步骤 1. 克隆代码库 ```bash git clone cd EarthDataServer ``` 2. 创建虚拟环境并激活 ```bash python -m venv venv # Windows venv\Scripts\activate # Linux/macOS source venv/bin/activate ``` 3. 安装依赖 ```bash pip install -r requirements.txt ``` 4. 运行应用 ```bash python main.py ``` 5. 访问应用 - 应用主页:http://localhost:5000 - API文档:http://localhost:5000/api/docs ## API使用 ### 数据管理API - `GET /api/data` - 获取数据列表 - `POST /api/data` - 上传数据 - `GET /api/data/` - 获取数据详情 - `DELETE /api/data/` - 删除数据 - `POST /api/data//process` - 处理数据 ### 上传指引 - Shapefile 请以 `.zip` 打包上传,压缩包内需包含 `.shp/.shx/.dbf`(建议同时包含 `.prj`)。 - 3DTiles 请以包含 `tileset.json` 的目录打包为 `.zip` 上传。 - 栅格影像(如 `.tif`)可直接单文件上传。 - 上传完成后,请在管理页面的数据集列表中点击“处理”按钮,待状态显示为 `processed` 后再发布服务。 ### 服务管理API - `GET /api/service` - 获取服务列表 - `POST /api/service` - 发布服务 - `GET /api/service/` - 获取服务详情 - `PUT /api/service/` - 更新服务状态 - `DELETE /api/service/` - 删除服务 ### 认证管理API - `POST /api/auth/login` - 用户登录 - `GET /api/auth/logout` - 用户登出 - `GET /api/auth/status` - 获取认证状态 ## 项目结构 ``` EarthDataServer/ ├── app/ │ ├── api/ # API接口模块 │ ├── core/ # 核心业务逻辑 │ ├── models/ # 数据模型 │ ├── services/ # 服务发布模块 │ └── utils/ # 工具函数 ├── config/ # 配置文件 ├── data/ # 数据存储目录 │ ├── raw/ # 原始数据 │ ├── processed/ # 处理后数据 │ └── tiles/ # 瓦片数据 ├── docs/ # 文档 ├── tests/ # 测试用例 ├── main.py # 主程序入口 └── requirements.txt # 依赖声明 ``` ## 配置说明 配置文件位于`config/`目录下,支持开发、测试和生产环境的配置。可以通过环境变量`FLASK_CONFIG`指定使用的配置文件。 主要配置项: - `SECRET_KEY` - 应用密钥 - `DATA_ROOT` - 数据存储根目录 - `SQLALCHEMY_DATABASE_URI` - 数据库连接URI - `SUPPORTED_FORMATS` - 支持的数据格式 - `LOG_LEVEL` - 日志级别 - `CORS_ORIGINS` - CORS允许的源 ## 开发指南 ### 代码规范 - 使用PEP 8代码规范 - 代码注释使用中文 - 函数和类使用文档字符串 ### 测试 运行测试: ```bash python -m pytest ``` ## 许可证 MIT License ## 贡献 欢迎提交Issue和Pull Request! ## 联系方式 如有问题或建议,请联系项目维护者。