Python气象数据分析:从数据清洗到可视化报告全流程实践
简介一份围绕气象数据分析的实验型资源包面向数据分析初学者、选修课学生及需要完成课程设计的人群完整演示了从中国天气网爬取指定城市天气数据到清洗整理、绘制雷达图与条形图、并结合实际给出分析说明的全流程。内容包含可直接在Jupyter Notebook中运行的源代码、整理后的实验报告及全部可视化图表既可用于课程作业模板也可作为爬虫入门和数据分析可视化的练习素材。资源共39个文件压缩包仅1.69MB其中20张PNG图片是最终生成的雷达图、条形图等分析图表15个XML文件与4个rels文件共同构成实验报告的Word源文档结构方便查看报告排版和图片引用关系整体十分轻量下载后即可快速运行。目前已有1853人学习下载。借助这套材料读者可以掌握天气数据采集、解析、分析与可视化的完整方法同时学习如何组织一份规范的实验报告并将这套流程迁移应用到其他行业数据分析任务中。1. 气象分析用一份气象数据把数据分析全流程走通气象分析这个项目名字听起来像气象专业的事实际上是一套用 Python 做的数据分析项目实践。核心就一句话拿一份真实气象站点的逐日观测数据把数据清洗、探索性分析、相关性检验、可视化报告这条链路完整走一遍。为什么用它来练手因为气象数据的字段语义非常明确气温、降水、湿度、风速这些列每一列都看得懂物理含义缺失值和异常值模式清晰而且季节周期天然存在分析完对不对一眼就能验证。新手能在这里把 pandas、matplotlib 的基本功练扎实熟手可以拿它做插值试验、季节分解和残差诊断。这份资源我按 Python 脚本、气象样本数据、报告实验模板三块整理照着跑一遍就能产出一份像样的数据分析实验报告。2. 数据获取与清洗拿到气象数据先处理三件事气象数据在公开渠道并不难找但真正决定报告质量的是三大前提数据来源可靠、字段语义明确、缺失和异常处理得当。这一章把资源里数据的常用来源、字段含义和清洗流程说清楚顺序对了后面基本不返工。2.1 气象数据的常见来源与字段选择写数据分析报告的第一步不是写代码是先搞清楚数据从哪来、每个字段代表什么。资源里用的是气象站点的逐日观测表常见公开来源有国家级气象站历史观测数据共享服务、气象数据网站以及 NASA POWER 这类再分析数据集。不管从哪个渠道拿落到 csv 或 excel 之后字段大同小异下表是这套资源里保留的核心字段字段含义单位连续性date观测日期-离散tmax日最高气温℃连续tmin日最低气温℃连续temp日平均气温℃连续precip日降水量mm连续大量 0 值humidity日均相对湿度%连续wind日均风速m/s连续sun日照时数h连续pressure日均气压hPa连续字段选择上有个常见做法初版分析只保留数值连续性好的列天气现象、云量这类文本或分类字段留到后面做专项分析不要一上来全塞进统计里。我一般会把 date 设成唯一索引其余列统一转成 float先跑一遍 dtypes 检查省得后面在类型问题上翻车。2.2 用 pandas 加载数据并做缺失值画像先用 pandas 把数据读进来同时把日期拆成年、月两列这两列是所有分组统计的前提。import pandas as pd df pd.read_csv( weather_daily.csv, parse_dates[date], # 把 date 解析成 datetime date_format%Y-%m-%d, # 显式指定格式避免解析失败 ) df df.set_index(date) # 日期设为行索引 df[year] df.index.year # 拆出年份 df[month] df.index.month # 拆出月份 missing df.isna().sum() print(各列缺失值数量) print(missing[missing 0]) print(f总行数{len(df)})这段代码做了三件事parse_dates 把日期解析成 pandas 的 datetime 类型配合 date_format 显式指定格式可以避免默认解析器遇到混合格式时整列回退成字符串set_index 让日期成为行索引后面按年按月切片都依赖它isna().sum() 输出每列缺失值数量先给数据画个像。有一点要注意date_format 是 pandas 2.0 以后的写法老版本里这个参数叫 format写脚本前先确认环境版本。拿到缺失画像之后要区分三类缺失单点缺失、连续缺失、整月缺失处理策略完全不同。单点缺失可以用邻近值插补连续缺失超过一周就不要再插值了插出来的平滑曲线是假数据整月缺失只能标记任何填充都是在编造。下面是一个按年按月分组填充气温缺失值的写法# 按年月分组组内均值填充缺失 df[tmax] df.groupby([year, month])[tmax].transform( lambda x: x.fillna(x.mean()) )groupby 按年和月分组后transform 会把填充结果按原索引对齐回每一行表结构不变。lambda 里的 fillna(x.mean()) 只填充当前组内部的均值避免用全年均值把冬季缺口填成夏季水平。这里有个容易忽略的细节如果整组缺失组内均值本来就是 NaNtransform 之后仍然返回 NaN。我的习惯是填充完再跑一次 isna().sum()把残余 NaN 数量写进报告的数据质量说明里。2.3 异常值识别物理边界与分位数双保险清洗的第三件事是处理异常值。气象数据有天然优势物理边界非常清楚。比如某站历史极端最高温 42℃突然出现一条 58℃基本可以判定是传感器或录入错误。我一般用两道检查物理边界直接标记分位数检查看分布尾部。cols [tmax, tmin, temp, precip] for col in cols: q01 df[col].quantile(0.01) q99 df[col].quantile(0.99) print(f{col}: 1%分位数{q01:.1f}, 99%分位数{q99:.1f})quantile(0.01) 和 quantile(0.99) 给出分布两端的参考值超过 99% 分位数的记录并不一定错误极端高温本身就是研究对象的一部分所以策略是只标记、不删除。我会把可疑行导出成单独文件在报告实验里写清楚人工核验结果。记住一条在气象分析里删除是最后手段先标记、再核验、再决定这个顺序能帮你躲过大部分数据质量事故。提示所有统计输出在写报告时都要保留一份原始导出文件数据质量说明应该是报告的第一节别跳过。3. 探索性分析分布、周期与相关检验怎么选方法数据洗干净之后进入探索性分析阶段。这一章对应数据分析的方法里最核心的三板斧描述分布、拆解周期、检验相关。气象分析报告实验的主体内容也全集中在这块。3.1 描述性统计与分布形态检查先看整体统计量。pandas 的 describe 是第一个必跑的检查但只看默认输出不够要补偏度。cols [tmax, tmin, temp, precip, humidity, wind, sun] desc df[cols].describe().T # 转置成变量行为读数 desc[skew] df[cols].skew() # 追加偏度列 print(desc.round(2)).T 把变量转成行、统计量转成列这样逐行可读skew() 计算偏度。降水列的偏度会远大于 0因为大多数日子降水为 0 或很小偶尔几天暴雨把分布拉成右偏风速一般轻微右偏气温的偏度接近 0。看到偏度大的列后续相关分析要优先选 Spearman 而不是 Pearson这个判断在 3.3 会用到。分布检查还可以配合直方图看形态import matplotlib.pyplot as plt fig, axes plt.subplots(1, 3, figsize(14, 4)) for ax, col in zip(axes, [temp, precip, wind]): ax.hist(df[col].dropna(), bins40) # 40 组直方图 ax.set_title(col) plt.tight_layout() plt.show()bins40 是经验参数几千行数据用 40 组能把分布形状显示清楚太少会丢掉细节太多会抖动。观察重点气温接近单峰对称分布降水是右偏尖峰风速中度右偏。这些形态判断会直接决定后面选什么统计方法、怎么解读相关系数别把直方图当成凑数的配图。3.2 季节周期分析按月聚合与箱线图气象数据季节周期天然存在不拆开看等于浪费数据里最重要的信息。先按月份聚合看均值曲线再看箱线图判断每月离散度。monthly df.groupby(month)[temp].agg([mean, std, count]) print(monthly.round(2)) # 按月份绘制箱线图观察季节分布 df[temp].plot(kindbox, bydf[month], figsize(10, 5))agg 一次算出月度均值、标准差和样本量count 顺便检查每月样本量是否稳定。箱线图横轴按月份排列夏季箱体整体上移、冬季下移季节规律一目了然。如果某个月份箱体异常宽说明该月方差偏大站点可能经历过搬迁或仪器更换这些背景信息要在报告里交代否则读者会对离群月份产生困惑。如果数据跨多个年份我还建议做一次季节分解把趋势项、季节项、残差项拆开看。statsmodels 的 seasonal_decompose 是现成工具from statsmodels.tsa.seasonal import seasonal_decompose # 逐日数据聚合到月度均值 series df[temp].resample(ME).mean().dropna() result seasonal_decompose(series, modeladditive, period12) result.trend.plot() # 趋势项 result.seasonal.plot() # 季节项resample(ME) 把逐日数据聚合到月度均值注意新版 pandas 里 ME 是标准写法老版本写 M 也认。period12 代表 12 个月一个循环model 参数选 additive 还是 multiplicative取决于季节波动的幅度是否随水平变化气温一般加性够用降水用乘法更贴近实际。分解出来的 trend 项就是做长期趋势判断的干净素材直接看原始年均值曲线反而会被季节波动干扰。3.3 变量相关分析为什么优先选 Spearman气象分析报告里最有价值的结论往往是变量之间的关系气温和湿度、气温和降水、风速和气压。计算相关矩阵时方法选择直接影响结论方向。import scipy.stats as stats cols [tmax, precip, humidity, wind] pearson df[cols].corr(methodpearson) spearman df[cols].corr(methodspearman) print(Pearson 相关) print(pearson.round(2)) print(Spearman 相关) print(spearman.round(2))method 参数是关键Pearson 衡量线性相关对离群点和偏态分布敏感Spearman 基于秩次只关心单调关系对降水这种右偏分布稳健得多。实践里我两个都算如果两者差异明显比如 Pearson 接近 0 而 Spearman 不为 0说明变量之间是非线性关系报告里要专门讨论不能只挑好看的那个写。单条相关系数的显著性检验同样要走r, p stats.spearmanr(df[temp], df[humidity]) print(f温度-湿度: r{r:.3f}, p{p:.4f})spearmanr 返回相关系数和 p 值p 小于 0.05 才算显著相关。但气象数据样本量动不动几千条微小的相关系数也会被检验成显著所以报告里必须强调r 的绝对值小于 0.2 时统计显著不等于实际有意义解释力非常有限。这一条是新手写分析报告最容易犯的过度解读错误宁可写得保守也不要吹过头。4. 可视化与报告实验Python 出图与结果落地的配合python数据分析与可视化是这套实践包里观感最直接的部分。统计数字很难让读者直接信服一张趋势图加一张相关热力图报告的说服力立刻上一个台阶。资源里所有出图脚本都集中在 analysis_plots.py改参数就可以复用到别的站点数据。4.1 温度趋势图年际曲线与月度季节曲线先画两幅最有代表性的图年均气温曲线和月度平均曲线分别回答长期怎么变、年内怎么波动。import matplotlib.pyplot as plt yearly df.groupby(year)[temp].mean() # 年均气温 monthly df.groupby(month)[temp].mean() # 月均气温 fig, (ax1, ax2) plt.subplots(2, 1, figsize(11, 7)) ax1.plot(yearly.index, yearly.values, color#2c7fb8, linewidth1.5) ax1.set_ylabel(年均气温 (℃)) ax1.set_title(站点年均气温年际变化) ax2.plot(monthly.index, monthly.values, markero, color#f03b20) ax2.set_ylabel(月均气温 (℃)) ax2.set_xticks(range(1, 13)) # 强制显示 1 到 12 月 ax2.set_title(年内月均气温季节曲线) plt.tight_layout() plt.savefig(temperature_trend.png, dpi150)subplots(2, 1) 生成上下两张子图返回的 axes 对象按顺序给 ax1、ax2 使用。savefig 的 dpi150 是报告贴图的最低要求要提交印刷版再提到 300。ax2.set_xticks(range(1, 13)) 这行容易被漏掉不设置的话 pandas 会按数据自动挑刻度可能跳过 11 月、12 月横轴看起来就是缺的。以降水量为例再画一张年累计降水柱状图考察降水的年际波动yearly_precip df.groupby(year)[precip].sum() # 每年降水总量 yearly_precip.plot(kindbar, figsize(11, 4), color#3182bd) plt.ylabel(年降水量 (mm)) plt.savefig(precip_yearly.png, dpi150)groupby(year)[precip].sum() 汇总每年降水总量bar 图适合展示离散年份的对比。注意降水柱状图容易出现个别年份明显偏高或偏低这可能是真实的旱涝差异也可能是缺测导致的系统性低估所以画完要回头对照第 2 章的数据质量说明核对一遍别直接把图扔进报告。4.2 相关矩阵热力图一眼看清变量关系相关矩阵用 seaborn 热力图展示是报告里信息密度最高的一张图通常放在分析章节的开头位置。import seaborn as sns corr df[[tmax, tmin, precip, humidity, wind, sun]].corr( methodspearman # 用 Spearman原因见 3.3 ) plt.figure(figsize(8, 6)) sns.heatmap( corr, annotTrue, # 格子里显示数值 fmt.2f, # 保留两位小数 cmapRdBu_r, # 红正蓝负 vmin-1, vmax1, center0, # 0 值显示为白色 ) plt.tight_layout() plt.savefig(corr_heatmap.png, dpi150)annotTrue 把相关系数直接写在格子里fmt.2f 控制显示格式cmapRdBu_r 让正相关呈红色、负相关呈蓝色这是气象报告里的惯用配色红蓝相反不会引起歧义center0 保证 0 值是白色冷暖对称看起来不会误解方向。注意这里的相关矩阵用的是 Spearman原因上一章说过——降水偏态严重Pearson 会给出误导性数值出图前别改回默认。4.3 报告实验的输出组织数据、图表、结论三件套报告实验要的不只是一张图而是一套能复现的记录。我习惯把所有实验结果导出成 csv 和图片再按模板写数据分析报告每个结论都能对应到具体输出文件。summary df.groupby(month).agg( temp_mean(temp, mean), # 月度均温 temp_std(temp, std), # 月度标准差 precip_sum(precip, sum), # 月度降水总量 ).round(2) summary.to_csv(analysis_results.csv, encodingutf-8-sig) final_corr df[[tmax, precip, humidity]].corr( methodspearman ).round(3) final_corr.to_csv(correlation_results.csv, encodingutf-8-sig)agg 用元组语法给每个输出列指定聚合函数输出列名直接叫 temp_mean、temp_std比 pandas 默认的列名可读性好很多。to_csv 里的 encodingutf-8-sig 是关键参数Windows 上 Excel 打开带 BOM 的 utf-8 文件才不会中文乱码这是报告交付环节最常见的坑。实验记录的思路是每个输出对应报告的一节描述统计支撑数据概况相关矩阵支撑变量关系讨论趋势图支撑长期变化结论三件套齐了报告实验才算闭环。5. 避坑与排查气象数据分析的五个翻车现场这一章把气象数据分析项目实践里最容易踩的坑集中列出来。每一条都是真实发生过的翻车现场按现象、原因、解决的顺序写照着排查能省下大量返工时间。5.1 日期解析失败读进来全是字符串现象print(df.dtypes) 显示 date 列是 object 而不是 datetime按年份分组时报错或者分组结果完全对不上。原因csv 文件里的日期格式不标准2023/1/5 和 2023-01-05 混着写或者月份用了英文缩写pandas 默认解析器遇到无法解析的格式整列回退成字符串。解决读取时显式指定格式用 date_format 参数强制解析规则。不确定文件里是什么格式时先读前几行看原始字符串再下手别靠猜。df pd.read_csv( weather_daily.csv, parse_dates[date], date_format%Y-%m-%d, # 格式与文件实际保持一致 )这个坑几乎每个做气象数据分析的人都会碰一次排查成本其实很低就是多写一个参数的事但漏了它后面所有时间序列操作都白搭。5.2 缺失值填充把冬季均值拉高现象补完缺失之后冬季平均气温比历史记录明显偏高1 月均值异常离谱。原因用了全局均值填充所有月份的缺失值。冬季本来偏冷夏季均值混进去之后冬季的缺口被填成偏高数值季节特征被彻底破坏。解决按年按月分组填充或者用相邻日期线性插值。分组填充 2.2 里写过这里补插值写法df[tmin] df[tmin].interpolate( methodlinear, limit_directionboth, # 首尾缺失也向外推 )interpolate 对连续几天缺失效果好limit_directionboth 表示序列首尾的缺失也向前后外推。但注意如果某个月整月缺失插值会把边界连成直线看着平滑实际是编造的假数据必须识别出来并在报告里声明不能当真实观测用。5.3 降水字段的 0 与 NaN 混为一谈现象降水量为 0 的天数统计出来特别少或者年降水总量算出来明显偏低。原因气象记录里无降水记 0缺测记 NaN两者含义完全不同。有人清洗时用 dropna() 把 NaN 行整行删掉0 值保留结果样本缺失集中在无降水日上年降水总量被系统性低估。解决先把 0 和 NaN 分开统计再决定策略。降水缺失不做均值填充用前向填充或者直接标记因为均值填充会凭空造出毛毛雨记录。rain_na df[precip].isna().sum() rain_zero (df[precip] 0).sum() print(f缺测{rain_na} 天无降水{rain_zero} 天)这个统计必须写进报告实验的数据质量说明里它有实际业务含义缺测比例高说明站点维护差后续趋势分析的可信度要打折读者一眼就能看出数据的底线在哪。5.4 相关矩阵出现违背常识的正负号现象气温与降水的相关系数算出来是正的数值还不小和夏季多雨、冬季干燥的常识完全对不上。原因计算相关时没有去掉季节效应。把 1 月到 12 月混在一起算温度高的月份降水也多整体看就是正相关但这种相关其实是季节混叠造成的假象不是气象学意义上的真实关系。解决分季节计算写进报告更直观for season, months in [(春, [3, 4, 5]), (夏, [6, 7, 8]), (秋, [9, 10, 11]), (冬, [12, 1, 2])]: sub df[df[month].isin(months)] r, p stats.spearmanr(sub[temp], sub[precip]) print(f{season}: r{r:.2f}, p{p:.3f})这个翻车点特别适合写进报告实验的讨论部分先说明整体相关受季节干扰再展示分季节结果分析深度立刻不一样评审一眼就能看出你真正理解数据。5.5 图表中文全部显示成方块现象图表标题和图例里的中文变成空心方块英文和数字正常。原因matplotlib 默认字体 DejaVu Sans 不包含中文字形Windows 和 Linux 上默认配置都不带中文字体支持。解决绘图前统一设置中文字体Windows 常用 SimHeiLinux 用 Noto Sans CJK SC。import matplotlib.pyplot as plt plt.rcParams[font.sans-serif] [SimHei, Microsoft YaHei, Noto Sans CJK SC] plt.rcParams[axes.unicode_minus] False # 修负号方块axes.unicode_minus 设为 False 解决坐标轴负号显示成方块的问题。这段配置建议放在脚本最开头统一设置不要每张图调一次也别指望每台机器字体都一样多列几个候选字体名是稳妥做法。6. 进阶用法滑动平均与线性回归交叉验证趋势前面把探索分析和出图都跑通了最后这一步是把结论验证做扎实年均气温到底有没有上升趋势只用均值曲线肉眼判断不够客观我的做法是两条腿走路先做 12 个月滑动平均去除季节波动再用线性回归估计趋势斜率。# 月度序列 12 个月滑动平均 monthly df[temp].resample(ME).mean().to_frame() monthly[temp_ma] monthly[temp].rolling( window12, # 12 个月窗口 centerTrue # 窗口对齐到中间点 ).mean() print(monthly[temp_ma].tail())rolling(window12) 对月度序列做 12 个月滑动平均centerTrue 让窗口对齐到中心曲线比原始数据平滑且没有相位偏移。滑动平均把季节周期抹掉之后剩下的主要是年际波动看趋势比直接看逐年线干净得多这也是气象分析里最常用的平滑方式。回归部分只取近 20 年数据这个窗口长度在气象分析里比较常用太短容易被单一年份极端天气带偏太长又混进多年代际震荡。yearly df.groupby(year)[temp].mean() slope, intercept, r_value, p_value, std_err stats.linregress( yearly.index.astype(int), yearly.values, ) print(f趋势斜率{slope:.4f} ℃/年, R²{r_value**2:.3f}, p{p:.3f})linregress 返回斜率、截距、相关系数、p 值和标准误五个值这套输出足够支撑报告里的趋势判断。两个细节必须强调第一滑动平均后的序列存在自相关回归得到的 p 值会偏乐观严谨一点需要做块自举或 HAC 标准误校正第二斜率单位是 ℃/年写报告时要换算成每十年变化量读者才直观。气象分析报告实验做到这一步已经比大多数课程作业多了一个层次不满足于画出趋势而是对趋势做显著性检验。从那以后我每次跑气象数据分析都会强制走一遍交叉验证流程先画原始图再滑动平均最后回归出斜率三个结果对不上就回头查数据。做数据分析最怕结论只来自一张图、一个数字没有第二重验证兜底。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

软件测试面试题全解析:从基础理论到AI与物联网实战

软件测试面试题全解析:从基础理论到AI与物联网实战

软件测试面试题这个话题,每年都能收到一堆私信。有人刷了一周八股文还是挂在一面,有人只准备了两天却拿到了不错的offer。核心区别不在于背了多少题,而在于有没有把题目背后的考察点摸透。我整理了这份软件测试面试常见问题清单,附…

2026/10/10 14:08:50 阅读更多 →
C++ unordered_map与unordered_set详解:哈希表原理、接口用法与性能优化

C++ unordered_map与unordered_set详解:哈希表原理、接口用法与性能优化

用过 C 的都知道,当你还在用map、set做查找和去重的时候,数据量一旦上来,心里多少会有点不踏实。这时候就该unordered_map和unordered_set登场了。这两个容器在 C11 里正式进入标准库,核心卖点就一句话:基于哈希表实现…

2026/10/10 14:08:50 阅读更多 →
Linux新手第一周:环境搭建、常用命令与学习路线全记录

Linux新手第一周:环境搭建、常用命令与学习路线全记录

几个月前,社团面试的场景还在眼前,转眼第一周周报已经躺在群文件里。说实话,接手【西邮 Linux 兴趣小组】的第一周,我最大的感受不是“教了多少东西”,而是“被一群刚接触 Linux 的新人追着问问题,自己回头…

2026/10/10 14:08:50 阅读更多 →

最新新闻

WinSxS文件夹清理指南:用DISM安全释放系统盘空间

WinSxS文件夹清理指南:用DISM安全释放系统盘空间

1. 先搞清楚 WinSxS 到底是个什么东西很多人第一次打开C:\Windows\WinSxS这个文件夹,看到属性里显示十几个 G,甚至二十几个 G,第一反应就是:这玩意儿是不是垃圾?能不能直接删掉腾空间?我当年也是这么想的&a…

2026/10/10 14:54:00 阅读更多 →
Kettle(PDI)安装配置完全指南:版本匹配与避坑实践

Kettle(PDI)安装配置完全指南:版本匹配与避坑实践

简介:面向数据集成初学者、数据分析师及需要快速搭建ETL环境的开发人员,这是一份以Pentaho Data Integration(PDI)下载安装与基础配置为核心的PDF速查教程。Kettle作为开源ETL工具,常用于多平台数据抽取、转换与加载&a…

2026/10/10 14:54:00 阅读更多 →
Clude安装流程全解析:四步跑通本地AI命令行工作台

Clude安装流程全解析:四步跑通本地AI命令行工作台

前阵子有个朋友跑来问我,说手里的AI工具一直停留在网页聊天框的阶段,想要找个能接进本地工作流的方式,问我有没有推荐的方案。我直接丢给他一款叫Clude的开源个人AI工作台——它跟那种只能在浏览器里对话的产品不太一样,装好之后你…

2026/10/10 14:54:00 阅读更多 →
Kettle(PDI)安装与启动实战:从下载到跑通第一个转换

Kettle(PDI)安装与启动实战:从下载到跑通第一个转换

简介:Kettle(Pentaho Data Integration,简称 PDI)是一款开源 ETL 工具,面向需要进行数据抽取、转换与加载的开发者,重点解决该工具在 Windows、Linux、macOS 等平台下的获取、安装与基础配置难题。资料以单…

2026/10/10 14:54:00 阅读更多 →
AIRI 浏览器本地语音识别(Browser Local ASR/STT):当前状态、WIP 占位实现与可用替代方案

AIRI 浏览器本地语音识别(Browser Local ASR/STT):当前状态、WIP 占位实现与可用替代方案

AI 应用人工智能大模型数字人AI Agent语音前端后端 【免费下载链接】airi 💖🧸 Self hosted, you-owned Grok Companion, a container of souls of waifu, cyber livings to bring them into our worlds, wishing to achieve Neuro-samas altitude. Capa…

2026/10/10 14:54:00 阅读更多 →
统一登录与单点登录实战:网关与认证中心的搭建全解

统一登录与单点登录实战:网关与认证中心的搭建全解

这段时间我一直在折腾一件事:把我们内部几个各自为战的业务系统,统一到一个登录入口底下。项目代号倒是很形象,sward 负责守门,soular 负责认人。说白了,sward 是一个网关层,soular 是一个身份认证中心&…

2026/10/10 14:52:58 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:25 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →