Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • F Fresher_Python_Task
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1
    • Issues 1
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • 郭春蕊
  • Fresher_Python_Task
  • Issues
  • #2

Closed
Open
Created May 16, 2026 by 郭春蕊@guocrOwner8 of 23 tasks completed8/23 tasks

Python新手任务

任务目的

通过训练任务熟悉公司开发的基本流程,熟悉开发规范,掌握基本业务内容

本训练任务的预计训练周期为:2周

任务要求

使用python、fastapi、docker等完成以下任务,要求:

  1. 使用面向对象思维编程
  2. 代码良好的可读性
  3. 良好的接口设计和代码设计
  4. 考虑后期的可维护性、可扩展性

任务规范

项目开发流程请遵循以下开发流程规范:

  1. 收到议题后,请关注议题右侧面板的指派人/截止日期/预计工时,请在截止日期前完成议题的工作,如无法完成,提前说明情况
  2. 完成其中一项任务就提交一次代码,并在议题上打勾,记录用时,不要等所有任务都做完再做标记,不知如何操作问相关负责人
  3. 在自己个人空间下分解议题任务,创建项目提交代码,提交代码时关联议题,评论中提供成果图等

代码提交示例

注意关联议题和任务

## 2023-7-4 v1.0.0 cma/wcagmssweb#60
1. 新增 - 展示最高气温站点数据
2. 新增 -  实现最高气温站点数据添加以及格点图的添加
3. 修复: ...
4. 优化: ...
5. 删除: ...
...

注: 操作仓库前请先了解 《研发工作操作流程》

工作流程

graph TD;
    A[新建Gitlab项目-个人] --> B;
    B[创建Java工程-公司微服务框架] --> C;
    C[提交代码审核] --> D;
    D[新建任务议题-截止时间/指派人/预估工时] --> E;
    E[设计接口-基于Apifox] --> F;
    
    subgraph 开发循环;
        F[功能实现] --> G;
        G[提交代码并关联议题, 记录工时] --> H{所有功能点都完成?};
        H -- 否 --> F;
    end
    
    H -- 是 --> I;
    
    I[接口测试-基于Apifox] --> J;
    J[打包部署-基于Gitlab CI/CD] --> K[完成];

训练任务

数据源(mysql)

  1. 数据库

数据时段:2025-09-01至2025-10-31共两个月(T_R_SURF_DAY_ELE)

host:192.168.1.245
port:30306
database:znqdb_training
username:agrom
password:agromdba

站点表:T_P_MANG_STAT_COD,存储站点名称、经纬度位置等描述信息,字段含义见表设计
气象数据表:T_R_SURF_DAY_ELE,日资料数据,逐日气象观测数据,包括光温水等观测要素,字段含义见表设计
  1. gis(地图制图)服务地址:http://192.168.1.245:30004/mapapis/
  2. product(产品存储)服务地址:http://192.168.1.245:30084/swagger-ui/index.html

任务内容

  1. 创建项目工程
  • 安装python版本3.10
  • 使用uv创建并配置虚拟环境,安装环境依赖(.venv文件夹及内容不要提交git), uv add fastapi uvicorn[standard]
  • 使用fastapi框架创建web服务并正常启动工程
  • 配置文件:区分开发、生产环境(dev、prod),并配置系统变量(数据库等系统必要配置信息)

​ 参考:SonarQube代码审核, git使用

  1. 基于Apifox设计接口(任务3-7),包括接口url、参数等
  • 设计5个接口对应任务3-7的功能要求
  1. 实现接口按旬统计平均气温(表T_R_SURF_DAY_ELE中v12001字段)数据,并将统计结果写入数据表T_STAT_TENDAYS
  • 设计数据库表存储统计结果,表名:T_STAT_TENDAYS ,设计必要的字段(名称、类型、长度等)
  • 接口设计需要支持自定义开始、结束时间和要统计的站点(默认全部站点)
  • 按旬统计平均气温字段(v12001)的平均值并写入T_STAT_TENDAYS 表
  • 接口按照站号、旬排序返回统计结果

注:每月分上、中、下旬,每月1-10号为上旬,11-20为中旬,21-本月最后一天为下旬

  1. 实现接口对指定旬数据结果进行IDW插值(分辨率5KM)
  • 接口设计需要支持时间和要统计的站点参数(默认全部站点)
  • 从T_STAT_TENDAYS 表中查询结果并使用IDW插值,分辨率5KM,需严格按照命名规则命名:Z_AGME_C_BABJ_yyyyMMdd000000_P_CAGMSS_WCRM_TEND-TAV_5KM_CHN_L88_PD_000_00.tif
  • 将插值结果文件上传至postgis库
  1. 实现接口使用插值结果制作png产品
  • 使用gis服务进行png格式渲染制图
  • 要求使用产品服务可以正确查询到该产品结果
  1. 实现接口使用插值结果制作jpg产品
  • 使用gis服务进行jpg格式渲染制图,正确设置标题、日期、样式等
  • 要求使用产品服务可以正确查询到该产品结果
  1. 实现接口使用插值结果制作分省jpg产品(福建省制图,要用全国的TIF产品切割制图)
  • 使用gis服务进行jpg格式子区域渲染制图,正确设置标题、日期、样式等,福建代码:350000
  • 要求使用产品服务可以正确查询到该产品结果
  1. 使用numpy等技术实现高温热害灾害监测、预报开发,日期2024年8月12日
  • 根据灾害指标计算高温热害监测产品
  • 根据灾害指标计算高温热害预报(未来10天)产品
  • 对监测和10天预报结果制图

​ 数据:高温热害数据.zip

​ 灾害指标:

等级(H) 轻 度 中 度 重 度
气温 Tmax≥38℃ Tmax≥38℃ Tmax≥38℃
持续时间(天) 3~5 6~8 >8

注:持续天数小于3天无灾害用0表示,3-5天为轻度用1表示,6-8天为中度用2表示,大于8天为重度用3表示

  1. 打包,部署服务
  • 编写dockerfile制作服务镜像
  • 编写docker-compose文件启动服务
  1. 使用Apifox测试部署的服务接口,并保存为接口实例

制图参数说明

产品命名
TIF:Z_AGME_C_BABJ_yyyyMMdd000000_P_CAGMSS_WCRM_TEND-TAV_5KM_CHN_L88_PD_000_00.tif
png:Z_AGME_C_BABJ_yyyyMMdd000000_P_CAGMSS_WCRM_TEND-TAV_5KM_CHN_L88_PD_000_00.png
jpg:Z_AGME_C_BABJ_yyyyMMdd000000_P_CAGMSS_WCRM_TEND-TAV_5KM_CHN_L88_PD_000_00.jpg(全国),
     Z_AGME_C_BEFZ_yyyyMMdd000000_P_CAGMSS_WCRM_TEND-TAV_5KM_CHN_L88_PD_000_00.jpg(福建)

username: 100000(全国)、350000(福建)
owner: default
style样式键:TAV

**注:**所有接口要在Apifox中提供测试实例

公司whl库地址:

yztools:http://192.168.1.245:30081/#browse/browse:yz_pypi:yztools%2F0.3.7%2Fyztools-0.3.7-py2.py3-none-any.whl

yzproduct:http://192.168.1.245:30081/#browse/browse:yz_pypi:yzproduct%2F0.1.0%2Fyzproduct-0.1.0-py3-none-any.whl

Edited May 29, 2026 by 郭春蕊
Assignee
Assign to
Time tracking