当前位置: 首页 > news >正文

python绘制年平均海表温度、盐度、ph分布图

python绘制年平均海表温度、盐度、ph图

文章目录

  • python绘制年平均海表温度、盐度、ph分布图
    • 前言
    • 一、数据准备
    • 二、代码编写
      • 2.1. python绘制年平均海表温度(主要)
      • 2.2. python绘制年平均海表盐度(选看)
      • 2.3. python绘制年平均海表ph(选看)
    • 总结


python绘制年平均海表温度、盐度、ph分布图

所属目录:紫菜创建时间:2025/2/18更新时间:2025/2/19URL:https://blog.csdn.net/2301_78630677/article/details/145716784

前言

本文主要使用python绘制年平均海表温度、盐度、ph分布图,所用数据来源于Bio-ORACLE
参考文章:
Python绘制海表温度
【python海洋专题十二】年平均的南海海表面温度图

所用到的中国地图shp文件:
链接:https://pan.baidu.com/s/1q9hitI11CCYDWvBTWbAevg
提取码:9ju8

一、数据准备

Bio-ORACLE官网 下载所需的 2010-2020平均海表Ocean temperature、Salinity、pH数据
点击前往下载地址
在这里插入图片描述

下载下来的环境数据为.nc文件,也就是NetCDF格式。

‌NetCDF(Network Common Data Form)格式是一种用于存储和共享科学数据的标准格式,广泛应用于气象学、海洋学、地球科学等领域‌。.nc文件是NetCDF文件的扩展名,主要用于存储大型科学和工程数据集。

.nc文件的基本结构和特点
‌自描述性‌:.nc文件包含关于数据集的元数据,这些元数据描述了数据集的结构和内容,使得用户无需其他文档即可理解数据。
‌可移植性‌:.nc文件是二进制格式,能够在不同的平台上无缝迁移和使用。
‌多维数组结构‌:.nc文件通常包含多个维度,如时间、经度和纬度,适用于存储复杂的多维数据集。

补充:
所用的Bio-ORACLE环境数据合集(有需要就下载吧)
Bio-ORACLE数据分享[decade 2010-2020] [Surface layers]

二、代码编写

接下来主要讲述 python绘制年平均海表温度的代码,另外两个类似,只需要稍加修改

2.1. python绘制年平均海表温度(主要)

该代码用于绘制中国周边海域的海表温度(SST)分布图,并添加了省份边界、等温线和网格线等细节,最后保存pdf文件

import xarray as xr  
import matplotlib.pyplot as plt  
import cartopy.crs as ccrs  
import cartopy.feature as cfeature  
from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter  # 导入经纬度格式器 
import numpy as np
from cartopy.io.shapereader import Reader
from cartopy.feature import ShapelyFeature
# 加载NetCDF格式的SST数据(替换为你的SST数据文件路径)  
ds = xr.open_dataset(r"D:\oceandata\Bio-ORACLE\Temperature [mean].nc")  # 假设你的SST数据在该文件中  print(ds.variables) #打印SST数据的所有变量名及其相关信息,通过查看这些信息,你可以确定要使用哪个变量进行绘图和分析# 选择SST变量(替换为你的SST变量名)  
sst = ds['thetao_mean']# 计算时间轴上的平均值(如果时间是一个维度)  
sst_mean = sst.mean(dim='time')  # 假设'time'是时间维度  # 创建一个地图并设置投影  
fig = plt.figure(figsize=(10, 5))  
ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree())  # 添加陆地和海洋特征  
ax.add_feature(cfeature.LAND, color='lightgray')  
ax.add_feature(cfeature.OCEAN, color='w', edgecolor='lightgray')  
ax.coastlines(color='black')  
# 添加省份边界
shapefile = r"C:\Users\www\Desktop\china_map\china_SHP\省界_Project.shp"  # 替换为你的Shapefile文件路径
china_provinces = ShapelyFeature(Reader(shapefile).geometries(), ccrs.PlateCarree(), edgecolor='black', facecolor='none')
ax.add_feature(china_provinces)# 绘制SST平均值数据  
sst_plot = sst_mean.plot.contourf(ax=ax, transform=ccrs.PlateCarree(), cmap='coolwarm', levels=25, extend='both', add_colorbar=False,vmin=5, vmax=30)  
# levels参数可以调整等值线的数量  (具体来说,levels=25 表示将数据范围分成25个间隔,并绘制出相应的等值线。这些等值线将数据集的值范围(在此例中是5到30°C)平均分成25个部分,每个部分的上限和下限定义了一条等值线。)# 添加颜色条  
cbar = fig.colorbar(sst_plot, drawedges=True, ax=ax, location='right', shrink=0.95, pad=0.08, spacing='uniform', label='Average Sea Surface Temperature (°C)')  
cbar.ax.tick_params(labelsize=10)  # 设置色标尺标签大小 # 设置颜色条的刻度标签
cbar.set_ticks(np.arange(5, 31, 5))# 添加等温线  
sst_contour = sst_mean.plot.contour(ax=ax, transform=ccrs.PlateCarree(), colors='gray', levels=130,linewidths=0.5)   # levels参数可以调整等温线的数量  # 为等值线添加标签  
plt.clabel(sst_contour, inline=True, fontsize=10, fmt='%1.1f') # 设置地图的经纬度范围(可选)  
ax.set_extent([110, 135, 20, 40], crs=ccrs.PlateCarree())  # 添加网格线  
gl = ax.gridlines(crs=ccrs.PlateCarree(), draw_labels=True, xlocs=np.arange(110, 135, 5), ylocs=np.arange(20, 40, 5),linewidth=0.5, linestyle='--', color='k', alpha=0.8)  # 添加网格线
gl.xlabels_top = False  
gl.ylabels_right = False  
gl.xformatter = LongitudeFormatter()  # 使用默认的经度格式器  
gl.yformatter = LatitudeFormatter()   # 使用默认的纬度格式器  
gl.xlabel_style = {'size': 10, 'color': 'black'}  
gl.ylabel_style = {'size': 10, 'color': 'black'}  
print("Map created successfully!")
# 保存地图为PDF文件
plt.savefig('scs_sst_1.pdf', dpi=600, bbox_inches='tight', pad_inches=0.1)
# 显示地图  
plt.show()

代码大概包括以下流程:

  1. 加载数据:读取 NetCDF 文件并提取 SST 变量。
  2. 数据处理:对时间维度取平均。
  3. 创建地图:设置投影、添加陆地和海洋特征、绘制省份边界。
  4. 绘制 SST 数据:绘制填充等温线和等温线,添加颜色条和标签。
  5. 设置地图范围与网格线:调整地图范围,添加网格线并格式化标签。
  6. 保存与显示:保存地图为 PDF 文件并显示。

print(ds.variables) #打印SST数据的所有变量名及其相关信息,通过查看这些信息,你可以确定要使用哪个变量进行绘图和分析
例如该SST数据包括四个变量:time、latitude、longitude、thetao_mean, 其中thetao_mean就是SST变量名。

在这里插入图片描述

结果显示
在这里插入图片描述

2.2. python绘制年平均海表盐度(选看)

以下代码与年平均海表温度的代码类似(一些注释信息就没改过来了,知道意思即可)


import xarray as xr  
import matplotlib.pyplot as plt  
import cartopy.crs as ccrs  
import cartopy.feature as cfeature  
from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter  # 导入经纬度格式器 
import numpy as np
from cartopy.io.shapereader import Reader
from cartopy.feature import ShapelyFeature
# 加载NetCDF格式的SST数据(替换为你的数据文件路径)  ds = xr.open_dataset(r"D:\oceandata\so_baseline_2000_2019_depthsurf_49ed_5fc4_602c_U1739344920620_yandu.nc")  # 假设你的SST数据在该文件中  print(ds.variables)
# 选择SST变量(替换为你的SST变量名)  
sst = ds['so_mean']# 计算时间轴上的平均值(如果时间是一个维度)  
sst_mean = sst.mean(dim='time')  # 假设'time'是时间维度  # 创建一个地图并设置投影  
fig = plt.figure(figsize=(10, 5))  
ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree())  # 添加陆地和海洋特征  
ax.add_feature(cfeature.LAND, color='lightgray')  
ax.add_feature(cfeature.OCEAN, color='w', edgecolor='lightgray')  
ax.coastlines(color='black')  
# 添加省份边界
shapefile = r"C:\Users\www\Desktop\a5bc0-main\china_SHP\省界_Project.shp"  # 替换为你的Shapefile文件路径
china_provinces = ShapelyFeature(Reader(shapefile).geometries(), ccrs.PlateCarree(), edgecolor='black', facecolor='none')
ax.add_feature(china_provinces)# 绘制SST平均值数据  
sst_plot = sst_mean.plot.contourf(ax=ax, transform=ccrs.PlateCarree(), cmap='coolwarm', levels=15, extend='both', add_colorbar=False,vmin=20, vmax=35)  # levels参数可以调整等温线的数量  # 添加颜色条  
cbar = fig.colorbar(sst_plot, drawedges=True, ax=ax, location='right', shrink=0.95, pad=0.08, spacing='uniform', label='Average Sea Surface Salinity (psu)')  
cbar.ax.tick_params(labelsize=10)  # 设置色标尺标签大小 # 设置颜色条的刻度标签
cbar.set_ticks(np.arange(20, 36, 3))# 添加等温线  
sst_contour = sst_mean.plot.contour(ax=ax, transform=ccrs.PlateCarree(), colors='gray', levels=50,linewidths=0.5)  # 为等值线添加标签  
plt.clabel(sst_contour, inline=True, fontsize=10, fmt='%1.1f') # 设置地图的经纬度范围(可选)  
ax.set_extent([110, 135, 20, 40], crs=ccrs.PlateCarree())  # 添加网格线  
gl = ax.gridlines(crs=ccrs.PlateCarree(), draw_labels=True, xlocs=np.arange(110, 135, 5), ylocs=np.arange(20, 40, 5),linewidth=0.5, linestyle='--', color='k', alpha=0.8)  # 添加网格线
gl.xlabels_top = False  
gl.ylabels_right = False  
gl.xformatter = LongitudeFormatter()  # 使用默认的经度格式器  
gl.yformatter = LatitudeFormatter()   # 使用默认的纬度格式器  
gl.xlabel_style = {'size': 10, 'color': 'black'}  
gl.ylabel_style = {'size': 10, 'color': 'black'}  
print("Map created successfully!")# 保存地图为PDF文件
plt.savefig('scs_yandu_1.pdf', dpi=600, bbox_inches='tight', pad_inches=0.1)
# 显示地图  
plt.show()

在这里插入图片描述

2.3. python绘制年平均海表ph(选看)

以下代码与年平均海表温度的代码类似,只不过因为ph的值较小,我们可以先计算一下数据中的最大值与最小值,方便确定ph大小


import xarray as xr  
import matplotlib.pyplot as plt  
import cartopy.crs as ccrs  
import cartopy.feature as cfeature  
from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter  # 导入经纬度格式器 
import numpy as np
from cartopy.io.shapereader import Reader
from cartopy.feature import ShapelyFeature
# 加载NetCDF格式的SST数据(替换为你的SST数据文件路径)  ds = xr.open_dataset(r"D:\oceandata\ph_baseline_2000_2018_depthsurf_f606_6dc8_6180_U1739344995788_ph.nc")  # 假设你的SST数据在'sst.nc'文件中  # 选择pH变量(替换为你的pH变量名)  
ph = ds['ph_mean']# 计算pH数据的最高和最低值
ph_max = ph.max(dim=['time', 'latitude', 'longitude'])
ph_min = ph.min(dim=['time', 'latitude', 'longitude'])print("Maximum pH value:", ph_max)
print("Minimum pH value:", ph_min)print(ds.variables)
# 选择SST变量(替换为你的SST变量名)  
sst = ds['ph_mean']# 计算时间轴上的平均值(如果时间是一个维度)  
sst_mean = sst.mean(dim='time')  # 假设'time'是时间维度  # 创建一个地图并设置投影  
fig = plt.figure(figsize=(10, 5))  
ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree())  # 添加陆地和海洋特征  
ax.add_feature(cfeature.LAND, color='lightgray')  
ax.add_feature(cfeature.OCEAN, color='w', edgecolor='lightgray')  
ax.coastlines(color='black')  
# 添加省份边界
shapefile = r"C:\Users\王浩天\Desktop\a5bc0-main\china_SHP\省界_Project.shp"  # 替换为你的Shapefile文件路径
china_provinces = ShapelyFeature(Reader(shapefile).geometries(), ccrs.PlateCarree(), edgecolor='black', facecolor='none')
ax.add_feature(china_provinces)# 绘制SST平均值数据  
sst_plot = sst_mean.plot.contourf(ax=ax, transform=ccrs.PlateCarree(), cmap='coolwarm', levels=15, extend='both', add_colorbar=False,vmin=8, vmax=8.2)  # levels参数可以调整等温线的数量  # 添加颜色条  
cbar = fig.colorbar(sst_plot, drawedges=True, ax=ax, location='right', shrink=0.95, pad=0.08, spacing='uniform', label='Average Sea Surface pH')  
cbar.ax.tick_params(labelsize=10)  # 设置色标尺标签大小 # 设置颜色条的刻度标签
cbar.set_ticks(np.arange(8, 8.25, 0.05))# 添加等温线  
sst_contour = sst_mean.plot.contour(ax=ax, transform=ccrs.PlateCarree(), colors='gray', levels=200,linewidths=0.5)  # 为等值线添加标签  
plt.clabel(sst_contour, inline=True, fontsize=10, fmt='%1.3f')  #保留小数点后三位# 设置地图的经纬度范围(可选)  
ax.set_extent([110, 135, 20, 40], crs=ccrs.PlateCarree())  # 添加网格线  
gl = ax.gridlines(crs=ccrs.PlateCarree(), draw_labels=True, xlocs=np.arange(110, 135, 5), ylocs=np.arange(20, 40, 5),linewidth=0.5, linestyle='--', color='k', alpha=0.8)  # 添加网格线
gl.xlabels_top = False  
gl.ylabels_right = False  
gl.xformatter = LongitudeFormatter()  # 使用默认的经度格式器  
gl.yformatter = LatitudeFormatter()   # 使用默认的纬度格式器  
gl.xlabel_style = {'size': 10, 'color': 'black'}  
gl.ylabel_style = {'size': 10, 'color': 'black'}  
print("Map created successfully!")
# 保存地图为PDF文件
plt.savefig('scs_ph_1.pdf', dpi=600, bbox_inches='tight', pad_inches=0.1)
# 显示地图  
plt.show()

在这里插入图片描述

总结

主要是以绘制年平均海表温度分布图为例,其余环境数据也类似。

2025/2/19

相关文章:

python绘制年平均海表温度、盐度、ph分布图

python绘制年平均海表温度、盐度、ph图 文章目录 python绘制年平均海表温度、盐度、ph分布图前言一、数据准备二、代码编写2.1. python绘制年平均海表温度(主要)2.2. python绘制年平均海表盐度(选看)2.3. python绘制年平均海表ph&…...

windows中kafka集群部署示例

注意 kafka包路径不要太长,不然启动时候 这里再单独下个zookeeper做为三个kafka实例broker的注册中心 修改Zookeeper配置文件 脚本内容 call bin/zkServer.cmd 不然的话就进bin目录双击zkServer.cmd 配置Zookeeper的另外一种方式 用Kafka自带的zookeeper 例如我复制一份 …...

获取GitHub的OAuth2的ClientId和ClientSecrets

获取 GitHub OAuth2 登录所需的 client-id 和 client-secret 登录 GitHub:使用你的 GitHub 账号登录到 GitHub。访问开发者设置:点击右上角的头像,选择 Settings,然后在左侧导航栏中选择 Developer settings。创建新的 OAuth 应用…...

self-attention部分代码注释

多头注意力机制(Multi-Head Attention, MHA),是 Transformer 模型的核心组件之一。以下是对代码的逐行解析和详细说明: attention-is-all-you-need-pytorch-master\transformer\SubLayers.py class MultiHeadAttention(nn.Mo…...

idea里的插件spring boot helper 如何使用,有哪些强大的功能,该如何去习惯性的运用这些功能

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...

常用的配置文件格式对比(ini,toml,yaml,json,env,settings.py)及应用程序修改自身配置并保留注释

代码与环境配置解耦 git分支的代码应做到“环境无关”:代码本身不硬编码任何环境特定的配置(如数据库连接、密钥、API地址),而是通过外部机制动态注入。 配置与代码分离:将配置信息存储在代码库之外(如环…...

Java IO 和 NIO 的基本概念和 API

一、 Java IO (Blocking IO) 基本概念: Java IO 是 Java 平台提供的用于进行输入和输出操作的 API。Java IO 基于 流 (Stream) 的模型,数据像水流一样从一个地方流向另一个地方。Java IO 主要是 阻塞式 I/O (Blocking I/O),即线程在执行 I/O …...

小智AI桌宠机器狗

本文主要介绍如何利用开源小智AI制作桌宠机器狗 1 源码下载 首先下载小智源码,下载地址, 下载源码后,使用vsCode打开,需要在vscode上安装esp-idf,安装方式请自己解决 2 源码修改 2.1添加机器狗控制代码 在目录main/iot/things下添加dog.cc文件,内容如下; #include…...

MySQL 入门“鸡”础

一、Win10 与Ubuntu安装 以下是一篇针对 Ubuntu 安装 MySQL 的过程中写的示例: --- # Ubuntu 安装 MySQL 详细指南 在本教程中,我们将向您展示如何在 Ubuntu 上安装 MySQL,并完成基本的安全配置。以下是具体步骤: # 1. 安装 …...

Redis 中有序集合(Sorted Set)的使用方法

文章目录 前言1. 有序集合的特点2. 常用命令2.1 添加元素(ZADD)2.2 获取元素分数(ZSCORE)2.3 获取元素排名(ZRANK / ZREVRANK)2.4 获取范围内的元素(ZRANGE / ZREVRANGE)2.5 获取分数…...

WIn32 笔记:本专栏课件

专栏导航 上一篇:在VS2019里面,调整代码字体大小 回到目录 下一篇:无 本节前言 在之前的讲解里面,我讲解了 Visual Studio 软件的一些个基础操作步骤。从本节开始,我们进入预备章。 本节内容,属于是 …...

Unity git 获取当前修改或者新增的文件列表

直接上代码 using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Text.RegularExpressions; using UnityEngine;public class GitFileStatusCheckerTools : MonoBehaviour {// 获取Git变更文件列表(新增/修…...

结构型模式 - 桥接模式 (Bridge)

结构型模式 - 桥接模式 (Bridge) 桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化。 // 软件接口,作为实现部分 interface Software {void run(); }// 游戏软件类,实现 Software 接口 class Game…...

如何让传统制造企业从0到1实现数字化突破?

随着全球制造业不断向智能化、数字化转型,传统制造企业面临着前所未有的机遇与挑战。数字化转型不仅是技术的革新,更是管理、文化、业务流程等全方位的变革。从零开始,如何带领一家传统制造企业走向数字化突破,是许多企业领导者面…...

【Elasticsearch】script_fields 和 runtime_fields的区别

script_fields和runtime_fields都是 Elasticsearch 中用于动态计算字段值的功能,但它们在实现方式、应用场景和性能表现上存在显著区别。以下是两者的详细对比: 1.定义和应用场景 • script_fields: • 定义:通过 Painless 脚本…...

城电科技|会追日的智能花,光伏太阳花开启绿色能源新篇章

当艺术与科技相遇,会碰撞出怎样的火花?城电科技推出的光伏太阳花,以其独特的设计与智能化的功能,给出了答案。这款产品不仅具备太阳能发电的实用功能,更是一件充满科技属性的艺术性光伏产品,吸引了广泛关注…...

【笔记ing】C语言补充、组成原理数据表示与汇编实战、操作系统文件实战(高级阶段)

【第19节 C语言语法进阶】 【19.1 条件运算符与逗号运算符】 1 条件运算符 条件运算符是C语言中唯一的一种三亩运算符。三目运算符代表有三个操作数;双目运算符代表有两个操作数,如逻辑运算符就是双目运算符;弹幕运算符代表有一个操作数&a…...

快节奏生活

在当今快节奏的商务环境中,效率成为了决定企业竞争力的关键因素之一。亿可达软件连接平台,以其独特的功能和优势,为职场人士带来了前所未有的便捷与高效,成为了众多用户心中的“宝藏”工具。 1、亿可达:自动化流程的搭…...

【音视频】音视频录制、播放原理

一、音视频录制原理 通常,音视频录制的步骤如下图所示: 我们分别从音频和视频开始采样,通过麦克风和摄像头来接受我们的音频信息和图像信息,这通常是同时进行的,不过,通常视频的采集会比音频的采集慢&…...

前端Sass面试题及参考答案

目录 什么是 Sass? Sass 和 CSS 的主要区别是什么? Sass 中如何处理列表? Sass 中如何处理映射(map)? Sass 中如何使用函数? Sass 中如何使用内置函数? Sass 中如何设置默认值? Sass 中的 @function 和 @mixin 有什么区别? Sass 中如何实现模块化? Sass 中…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...

pam_env.so模块配置解析

在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

向量几何的二元性:叉乘模长与内积投影的深层联系

在数学与物理的空间世界中,向量运算构成了理解几何结构的基石。叉乘(外积)与点积(内积)作为向量代数的两大支柱,表面上呈现出截然不同的几何意义与代数形式,却在深层次上揭示了向量间相互作用的…...