python 高级篇散记

  • PEP 8 代码规范

  • python高级编程技巧

    • 深入类和对象
    • 类与对象深度问题及解决技巧
    • python垃圾回收及性能分析
    • python元类及迭代器生成器
  • socket编程

    • UDP 发送与接收数据
    • TCP 发送与接收数据
  • 多任务

    • 线程
    • 线程与进程
    • 进程、GIL全局解释器锁
    • 协程

    • 关闭动态绑定属性 __slots__

    了解计算机

    • 进程调度/时间片轮转/多级反馈队列
    • 并发 并行
    • 同步 异步
    • 阻塞 非阻塞

    线程、进程、协程

    • threading.Thread
    • multiprocessing.Process

线程是操作系统能够进行运算调度的最小单位。它包含在进程之中,是进程中的实际运行单位。
进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础,并且进程是线程的容器。程序是包含数据及其组织形式的描述,进程是一个执行中的程序。
进程是一个实体,每一个进程都有他自己的地址空间。一般情况下,包括文本区域,数据区域和堆栈。

- daemon=True 守护线程
- t.start()
- 使用threading.Condition()完成线程同步
   - condition
   - wait
   - notify
- 互斥锁 mutex
   - lock
   - aquire
   - release
  • 垃圾回收 import dis
  • pycharm中python程序设置:allow parallel run.

GIL 全局解释器锁
GIL并不是python的特征,python完全不依赖于GIL。在cpython解释器中,同一个进程下开启的多线程。同一时刻只能有一个线程执行,无法利用多核优势。GIL本质上就是一把互斥锁。将并发运行变成串行,以此来控制同一时间共享数据只能被一个任务修改,进而保证数据安全。

协程

  • yield 实现多任务
  • greenlet 实现协程(手动切换)
  • gevent 实现协程(遇到延迟切换)
可发自己的静态web服务器
  • 编写TCP服务器端程序
  • 获取浏览器发送的HTTP请求报文数据
    cmd 命令:python -m http.server 端口号
  • 读取(固定)页面数据,把页面数据组装成HTTP响应报文数据发送给浏览器。
  • HTTP响应报文数据发送完成以后,关闭服务于客户端的套接字。
    web浏览器#### 需求1:实现多任务文件夹复制
  • 获取用户要复制的文件夹名字;
  • 创建一个新的文件夹
  • 获取文件夹中所有待拷贝的文件名称
  • 创建进程池
  • 添加拷贝任务
  • 进度条
    进程之间的进程通信 multiprocessing.Queue
    进程池中的进程通信 multiprocessing.Manager().Queue()
    12
本研究利用Sen+MK方法分析了特定区域内的ET(蒸散发)趋势,重点评估了使用遥感数据的ET空间变化。该方法结合了Sen斜率估算器和Mann-Kendall(MK)检验,为评估长期趋势提供了稳健的框架,同时考虑了时间变化和统计显著性。 主要过程与结果: 1.ET趋势可视化:研究利用ET数据,通过ET-MK和ET趋势图展示了蒸散发在不同区域的空间和时间变化。这些图通过颜色渐变表示不同的ET水平及其趋势。 2.Mann-Kendall检验:应用MK检验来评估ET趋势的统计显著性。检验结果以二元分类图呈现,标明ET变化的显著性,帮助识别出有显著变化的区域。 3.重分类结果:通过重分类处理,将区域根据ET变化的显著性进行分类,从而聚焦于具有显著变化的区域。这一过程确保分析集中在具有实际意义的发现上。 4.最终输出:最终结果以栅格图和png图的形式呈现,支持各种应用,包括政策规划、水资源管理和土地利用变化分析,这些都是基于详细的时空分析。 ------------------------------------------------------------------- 文件夹构造: data文件夹:原始数据,支持分析的基础数据(MOD16A2H ET数据 宁夏部分)。 results文件夹:分析结果与可视化,展示研究成果。 Sen+MK_optimized.py:主分析脚本,适合批量数据处理和自动化分析。 Sen+MK.ipynb:Jupyter Notebook,复现可视化地图。
【云南省DEM(30米分辨率)】是一款地理信息数据产品,主要涵盖了云南省的地形高程信息。这款数据基于2019年8月5日发布的ASTER GDEM V3(Advanced Spaceborne Thermal Emission and Reflection Radiometer Global Digital Elevation Model Version 3)版本,是一个全球数字高程模型,提供的是30米的高分辨率。ASTER GDEM V3是通过日本航空航天探索局(JAXA)和美国国家航空航天局(NASA)合作的ASTER卫星获取的数据,它提供了全球范围内的高精度地表地形信息。 1. ASTER GDEM V3:ASTER GDEM V3是目前广泛使用的公开全球高程数据之一,其数据源自ASTER卫星的多光谱遥感图像。该数据集通过分析不同波段的反射和热发射来构建地表的三维模型,从而得出高程信息。V3版本是对之前版本的更新和改进,具有更高的数据质量和更少的错误。 2. GeoTIFF格式:这份数据采用GeoTIFF(Georeferenced Tagged Image File Format)格式,这是一种特殊的TIFF图像文件,包含了地理坐标系统信息。这意味着每张图像的每个像素都与地球表面的特定位置对应,方便在GIS软件中进行空间分析和地图制作。 3. WGS84坐标系:WGS84(World Geodetic System 1984)是全球最常用的地心地固坐标系统,广泛应用于GPS定位和其他全球导航系统。在云南省DEM数据中,使用WGS84坐标系可以确保与其他全球地理数据的一致性和兼容性。 4. DEM(Digital Elevation Model):DEM是一种表示地面高程信息的数字模型,由等间距的高程点构成,用于描述地表地形特征。它在地理信息系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值