大数据毕业设计选题推荐-污水处理大数据平台-Hadoop-Spark-Hive
✨作者主页:IT研究室✨
个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。
☑文末获取源码☑
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目
文章目录
- 一、前言
- 二、开发环境
- 三、系统界面展示
- 四、代码参考
- 五、论文参考
- 六、系统视频
- 结语
一、前言
随着工业化和城市化的快速发展,污水排放问题日益严重。为了管理和治理污水问题,建立基于大数据的污水处理大数据平台显得尤为重要。此平台可帮助我们实现对排放总量、行业污水排放量、行业氧化亚氮排放量、各行业氯苯排放量等关键指标的统计和分析,进而为污水处理和环境治理提供科学依据。
尽管目前已经有一些污水处理和排放统计的方法和技术,但它们往往存在一些问题。首先,许多方法仅能提供单一的排放量或处理量数据,无法对数据进行多种维度的分析。其次,这些方法往往缺乏实时性,无法及时反映污水处理和排放的实时情况。再次,很多方法无法对数据进行挖掘,无法揭示出隐藏在数据背后的规律和趋势。
本课题旨在建立一个基于大数据的污水处理大数据平台,以解决现有方法存在的问题。平台将实现对各类数据的采集、整合和分析,提供多种数据可视化工具,帮助研究人员和决策者更好地理解和处理污水问题。同时,该平台还将提供实时数据监测和预警功能,以便及时发现和处理污水排放和处理的异常情况。
本课题的研究意义在于推动大数据技术在污水处理领域的应用,提升污水处理和管理的效率和效果。通过建立基于大数据的污水处理大数据平台,我们将能够更好地理解和利用数据,为污水处理和环境治理提供科学依据,从而增进环境保护和可持续发展。同时,此研究还将为其他领域提供一种新的数据管理和分析模式,推动各行业的智能化和绿色化发展。
二、开发环境
- 大数据技术:Hadoop、Spark、Hive
- 开发技术:Python、Django框架、Vue、Echarts、机器学习
- 软件工具:Pycharm、DataGrip、Anaconda、VM虚拟机
三、系统界面展示
- 污水处理大数据平台界面展示:
四、代码参考
- 大数据项目实战代码参考:
class EMSAS():def __init__(self, window):self.window = window''' 菜单栏初始化'''menu_root = tkinter.Menu(self.window) # 创建根菜单self.window['menu'] = menu_root # 顶级菜单关联根窗体menu1 = tkinter.Menu(menu_root, tearoff=False) # 创建子菜单meun2 = tkinter.Menu(menu_root, tearoff=False)meun3 = tkinter.Menu(menu_root, tearoff=False)menu1.add_command(label='打开',command = self.openFileDialog) # 子菜单栏menu1.add_command(label='保存')meun2.add_command(label='地表水标准', command=self.openGB3838) # 子菜单栏meun2.add_command(label='地下水标准', command=self.openGB14848)meun3.add_command(label='地表水点位', command=self.openSites) # 子菜单栏meun3.add_command(label='地下水点位', command=self.openSites)menu_root.add_cascade(label='文件', menu = menu1) # 创建顶级菜单栏,并关联子菜单menu_root.add_cascade(label='标准配置', menu=meun2)menu_root.add_cascade(label='点位配置', menu=meun3)menu_root.add_cascade(label='关于')menu_root.add_command(label='退出', command = self.window.quit)self.frame_u = Frame(width=706, height=100, relief=RAISED,borderwidth=1)self.frame_l = Frame(width=350, height=300, relief=RAISED,borderwidth=1)self.frame_r = Frame(width=350, height=300, relief=RAISED,borderwidth=1) #relief=RAISED,self.frame_b = Frame(width=706, height=270, relief=RAISED,bg='blue', borderwidth=1)self.frame_u.grid(row=0, column=0, rowspan=1, columnspan=2, padx=2, pady=2)self.frame_l.grid(row=1, column=0, rowspan=1, columnspan=1, padx=2, pady=2)self.frame_r.grid(row=1, column=1, rowspan=1, columnspan=1, padx=2, pady=2)self.frame_b.grid(row=2, column=0, rowspan=1, columnspan=2, padx=2, pady=2)self.frame_u.grid_propagate(0) #固定容器大小self.frame_l.grid_propagate(0)self.frame_r.grid_propagate(0)self.frame_b.grid_propagate(0)self.openfile_button = Button(self.frame_u, text="打开Excel文件", # bg="lightblue",command=self.openFileDialog, pady=2, bd=5,relief=RAISED,font=(fontType_Arial, fontsize_M)) # 调用内部方法 加()为直接调用self.openfile_button.grid(row=0, column=0,columnspan = 2,sticky=W)self.filename_label = Label(self.frame_u, pady=1, text="")self.filename_label.grid(row=1, column=0,sticky=W)self.filename_out_label = Label(self.frame_u,pady=1, text="")self.filename_out_label.grid(row=2, column=0,sticky=W)self.surfaceW_label = Label(self.frame_l, text="地表水水质类别与超标情况判断", font=(fontType_Arial, fontsize_M))self.surfaceW_label.grid(row=1, column=1, rowspan=1, columnspan=5,pady=35)self.surfaceW_v = IntVar()self.surfaceW_site_rb = Radiobutton(self.frame_l, text='使用已配置点位信息', variable=self.surfaceW_v, value=1,font=(fontType_Arial, fontsize_M),command=self.changeselect)self.surfaceW_site_rb.grid(row=2, column=1, rowspan=1, columnspan=2,pady=5,sticky=E)self.surfaceW_v.set(1) # 默认值为1,选中状态self.surfaceW_site_rb = Radiobutton(self.frame_l, text='河 流', variable=self.surfaceW_v, value=2,font=(fontType_Arial, fontsize_M),command=self.changeselect)self.surfaceW_site_rb.grid(row=3, column=1, rowspan=1, columnspan=1,pady=5 ,sticky=E)self.surfaceW_lk_rb = Radiobutton(self.frame_l, text='湖 库', variable=self.surfaceW_v, value=3,font=(fontType_Arial, fontsize_M),command=self.changeselect)self.surfaceW_lk_rb.grid(row=3, column=2, rowspan=1, columnspan=1,pady=5,sticky=W)self.SurEva_button = Button(self.frame_l, text=" GB3838判定类别与超标情况 ", font=(fontType_Arial, fontsize_M),command=self.surfaceW_EVA, pady=1, bd=5) # 调用内部方法 加()为直接调用self.SurEva_button.grid(row=4, column=1,rowspan=1, columnspan=5, pady=25)''' frame right '''self.underW_label = Label(self.frame_r, text="地下水水质类别与超标情况判断", font=(fontType_Arial, fontsize_M))self.underW_label.grid(row=1, column=1, rowspan=1, columnspan=5,pady=35)self.underW_v = IntVar()self.underW_site_rb = Radiobutton(self.frame_r, text='使用已配置点位信息', variable=self.underW_v, value=1,font=(fontType_Arial, fontsize_M),command=self.changeselect)self.underW_site_rb.grid(row=2, column=1, rowspan=1, columnspan=2,pady=5)self.underW_v.set(1) # 默认值为1,选中状态self.underW_site_rb = Radiobutton(self.frame_r, text='不使用已配置点位信息', variable=self.underW_v, value=2,font=(fontType_Arial, fontsize_M),command=self.changeselect)self.underW_site_rb.grid(row=3, column=1, rowspan=1, columnspan=2,pady=5)self.UnderEva_button = Button(self.frame_r, text=" GB/T14848判定类别与超标情况 ", font=(fontType_Arial, fontsize_M),command=self.underW_EVA, pady=1, bd=5) # 调用内部方法 加()为直接调用self.UnderEva_button.grid(row=4, column=1,rowspan=1, columnspan=5, pady=25)''' frame bottom '''self.log_data_Text = Text(self.frame_b,width=98,font=(fontType_Arial, fontsize_S)) self.log_data_Text.grid(row=6, column=1,columnspan=1,sticky=tkinter.E+tkinter.W) #, rowspan=1, columnspan=15, padx=1, pady=1)scroll = tkinter.Scrollbar(self.frame_b,width=20)# 放到窗口的右侧, 填充Y竖直方向scroll.grid(row=6, column=2, sticky=tkinter.N+tkinter.S)# 两个控件关联scroll.config(command=self.log_data_Text.yview)self.log_data_Text.config(yscrollcommand=scroll.set)self.write_log_to_Text("----注意事项-------\n1.请确保打开的Excel首行为标题行,第二行始为数据行.\n2.如果使用配置好的点位信息,请确保点位列使用 '监测点位、断面名称、点位名称、所属断面'之一'.\n3.生成的文件位于打开的文件同一目录.")self.write_log_to_Text(loadSiteGB)old = sys.stdout # 将当前系统输出储存到一个临时变量中if log_to_file == '1':print(log_to_file)menu_root = open('.\\logs\\' + self.get_current_time2() + '.log', 'w')sys.stdout = menu_root # 输出重定向到文件else:sys.stdout = old# 设置窗口def set_window(self):self.window.title("水环境质量评价软件(WEQAS)V1.0") # 窗口名# self.window.geometry('320x160+10+10') #290 160为窗口大小,+10 +10 定义窗口弹出时的默认展示位置self.window.geometry('715x688+200+200') # w*h+/-x+/-y# self.window.resizable(0, 0)# self.window["bg"] = "yellow" # 窗口背景色,其他背景色见:blog.csdn.net/chl0000/article/details/7657887self.window.attributes("-alpha", 0.995) # 虚化,值越小虚化程度越高# 功能函数def changeselect(self):passdef surfaceW_EVA(self):global filefrom_df,sitesInfo_df,GB3838_reg_df, GB3838_df,filenamefrompanit_surf = []if filenamefrom == '':returnif (self.surfaceW_v.get() == 1): # 用已配置点位信息表colNames = filefrom_df.columns.tolist()if '断面名称' in colNames:siteCol = '断面名称'elif '监测点位' in colNames:siteCol = '监测点位'elif '点位名称' in colNames:siteCol = '点位名称'elif '所属断面' in colNames:siteCol = '所属断面'else:self.write_log_to_Text('Error:' + "在您输入的Excel中未找到点位列,请确保点位列使用 '监测点位、断面名称、点位名称、所属断面'之一,并确保首行为标题行! ")returnprint('点位数量:'+str(filefrom_df.shape[0]))for i in range(filefrom_df.shape[0]):df_m_1l = filefrom_df.iloc[i, :] # pd.SeriessiteName = df_m_1l[siteCol]# print('sitesInfo_df=',sitesInfo_df)if siteName in sitesInfo_df.index.tolist():targetClass = sitesInfo_df.loc[siteName, '考核级别'] # one行,a列siteType = sitesInfo_df.loc[siteName, '断面类型'] # one行,a列if siteType == '湖库':lake = 1else:lake = 0cls, overtimessites , cls_of_item, sucessedReg = siteEval(GB3838_reg_df, GB3838_df, siteName, 0, df_m_1l, int(typeCover(targetClass)), lake)print('cls, overtimessites ', cls, overtimessites)# print(df_sur_city.columns)filefrom_df.loc[i, '水质类别'] = typeCover(cls)filefrom_df.loc[i, '超标情况'] = overtimessites[ClassPerIteminRow.append(i) for ClassPerIteminRow in cls_of_item]panit_surf.extend(cls_of_item)print(sucessedReg)if len(eval(sucessedReg[sucessedReg.find('['):sucessedReg.find(']') + 1])) > 0:self.write_log_to_Text('Warning' + sucessedReg)elif len(eval(sucessedReg[sucessedReg.find('['):sucessedReg.find(']') + 1])) == 0:self.write_log_to_Text('INFO' + sucessedReg)elif (self.surfaceW_v.get() == 2): # 不用已配置点位信息表,全部点位都是河流断面for i in range(filefrom_df.shape[0]):df_m_1l = filefrom_df.iloc[i, :] # pd.Seriescls, overtimessites, cls_of_item, sucessedReg = siteEval(GB3838_reg_df, GB3838_df, '', 0,df_m_1l,3, 0) # 默认类别为 targetClass = 3filefrom_df.loc[i, '水质类别'] = typeCover(cls)filefrom_df.loc[i, '超标情况'] = overtimessites[ClassPerIteminRow.append(i) for ClassPerIteminRow in cls_of_item]panit_surf.extend(cls_of_item)if len(eval(sucessedReg[sucessedReg.find('['):sucessedReg.find(']') + 1])) > 0:self.write_log_to_Text('Warning' + sucessedReg)elif len(eval(sucessedReg[sucessedReg.find('['):sucessedReg.find(']') + 1])) == 0:self.write_log_to_Text('INFO' + sucessedReg)elif (self.surfaceW_v.get() == 3): # 不用已配置点位信息表,全部点位都是湖库for i in range(filefrom_df.shape[0]):df_m_1l = filefrom_df.iloc[i, :] # pd.Seriescls, overtimessites, cls_of_item, sucessedReg = siteEval(GB3838_reg_df, GB3838_df, '', 0, df_m_1l, 3,1) # 默认类别为 targetClass = 3filefrom_df.loc[i, '水质类别'] = typeCover(cls)filefrom_df.loc[i, '超标情况'] = overtimessites[ClassPerIteminRow.append(i) for ClassPerIteminRow in cls_of_item]panit_surf.extend(cls_of_item)if len(eval(sucessedReg[sucessedReg.find('['):sucessedReg.find(']') + 1])) > 0:self.write_log_to_Text('Warning' + sucessedReg)elif len(eval(sucessedReg[sucessedReg.find('['):sucessedReg.find(']') + 1])) == 0:self.write_log_to_Text('INFO' + sucessedReg)filefrom_df.to_excel(filenamefrom[0:filenamefrom.find('.')] + '_Evaluated.xlsx', index=False)book = openpyxl.load_workbook(filenamefrom[0:filenamefrom.find('.')] + '_Evaluated.xlsx')sheets = book.sheetnames # 获取全部sheetws = book[sheets[0]]for item in panit_surf: # openpyxl 读写单元格时,单元格的坐标位置起始值是(1,1),并且第一行为标题,故第一行数据加2ws.cell(item[2] + 2, item[0] + 1).fill = PatternFill(fill_type='solid', fgColor=getFgColor(item[1]))book.save(filenamefrom[0:filenamefrom.find('.')] + '_Evaluated.xlsx')self.filename_out_label.config(text="输出的文件:" + filenamefrom[0:filenamefrom.find('.')] + '_Evaluated.xlsx')try:os.startfile(r''+filenamefrom[0:filenamefrom.find('.')] + '_Evaluated.xlsx') # windows下成功打开excelexcept:print('系统没有自动打开文件的工具')returndef underW_EVA(self):global filefrom_df, sitesInfo_df, GBT14848_df, filenamefrompanit_surf = []if filenamefrom == '':returnif (self.underW_v.get() == 1): # 用已配置点位信息表colNames = filefrom_df.columns.tolist()if '断面名称' in colNames:siteCol = '断面名称'elif '监测点位' in colNames:siteCol = '监测点位'elif '点位名称' in colNames:siteCol = '点位名称'else:self.write_log_to_Text('Error:' + "在您输入的Excel中未找到点位列,请确保点位列使用 '断面名称'或'监测点位'或'点位名称'之一 ")returnfor i in range(filefrom_df.shape[0]):df_m_1l = filefrom_df.iloc[i, :] # pd.SeriessiteName = df_m_1l[siteCol] # 或者叫监测点位、点位名称# print('sitesInfo_df=', sitesInfo_df)if siteName in sitesInfo_df.index.tolist():targetClass = sitesInfo_df.loc[siteName, '考核级别'] # one行,a列cls, overtimessites, cls_of_item,sucessedReg = siteEval_underwater(GBT14848_df[GBT14848_df['是否评价'] == 1], GBT14848_df, siteName, 0,df_m_1l, int(typeCover(targetClass)))filefrom_df.loc[i, '水质类别'] = typeCover(cls)filefrom_df.loc[i, '超标情况'] = overtimessites[ClassPerIteminRow.append(i) for ClassPerIteminRow in cls_of_item]panit_surf.extend(cls_of_item)if len(eval(sucessedReg[sucessedReg.find('['):sucessedReg.find(']') + 1])) > 0:self.write_log_to_Text('Warning' + sucessedReg)elif len(eval(sucessedReg[sucessedReg.find('['):sucessedReg.find(']') + 1])) == 0:self.write_log_to_Text('INFO' + sucessedReg)elif (self.underW_v.get() == 2): # 不用已配置点位信息表for i in range(filefrom_df.shape[0]):df_m_1l = filefrom_df.iloc[i, :] # pd.Seriescls, overtimessites, cls_of_item, sucessedReg = siteEval_underwater(GBT14848_df[GBT14848_df['是否评价'] == 1], GBT14848_df, '', 0,df_m_1l, 3) # 默认类别为 targetClass = 3filefrom_df.loc[i, '水质类别'] = typeCover(cls)filefrom_df.loc[i, '超标情况'] = overtimessites[ClassPerIteminRow.append(i) for ClassPerIteminRow in cls_of_item]panit_surf.extend(cls_of_item)if len(eval(sucessedReg[sucessedReg.find('['):sucessedReg.find(']')+1]))>0:self.write_log_to_Text('Warning' + sucessedReg)elif len(eval(sucessedReg[sucessedReg.find('['):sucessedReg.find(']')+1]))==0:self.write_log_to_Text('INFO' + sucessedReg)filefrom_df.to_excel(filenamefrom[0:filenamefrom.find('.')] + '_Evaluated.xlsx', index=False)book = openpyxl.load_workbook(filenamefrom[0:filenamefrom.find('.')] + '_Evaluated.xlsx')sheets = book.sheetnames # 获取全部sheetws = book[sheets[0]]for item in panit_surf: # openpyxl 读写单元格时,单元格的坐标位置起始值是(1,1),并且第一行为标题,故第一行数据加2ws.cell(item[2] + 2, item[0] + 1).fill = PatternFill(fill_type='solid', fgColor=getFgColor(item[1]))book.save(filenamefrom[0:filenamefrom.find('.')] + '_Evaluated.xlsx')self.filename_out_label.config(text="输出的文件:" + filenamefrom[0:filenamefrom.find('.')] + '_Evaluated.xlsx')try:os.startfile(r'' + filenamefrom[0:filenamefrom.find('.')] + '_Evaluated.xlsx') # windows下成功打开excelexcept:print('----系统没有自动打开文件的工具----')return# 获取当前时间def get_current_time(self):current_time = time.strftime('%y-%m-%d %H:%M:%S', time.localtime(time.time()))return current_timedef get_current_time2(self):current_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))return current_time# 日志动态打印def write_log_to_Text(self, logmsg):global LOG_LINE_NUMcurrent_time = self.get_current_time()if LOG_LINE_NUM == 0:logmsg_in = " " + str(logmsg) + "\n" # 换行else: logmsg_in = str(current_time) + " " + str(logmsg) + "\n" # 换行if LOG_LINE_NUM <= 50:self.log_data_Text.insert(END, logmsg_in)LOG_LINE_NUM = LOG_LINE_NUM + 1else:self.log_data_Text.delete(1.0, 2.0)self.log_data_Text.insert(END, logmsg_in)if logmsg.find('Error')>-1:messagebox.showerror('出错了',logmsg)elif logmsg.find('Warning')>-1:messagebox.showwarning('请注意', logmsg)def openFileDialog(self):"打开对话框,参数与保存对话框相同.略"global filefrom_df,filenamefromself.filename = askopenfilename(filetypes=filetype)self.filename_label.config(text="打开的文件:" + self.filename)if self.filename:filefrom_df = pd.read_excel(self.filename, keep_default_na=False, header=0)filenamefrom = self.filenameelse:pass# print(self.filename)def openGB3838(self):try:filepath = os.path.join('./staticData', 'GB3838-2002-t1.xls')os.startfile(filepath) # windows下打开地表水标准配置文件except:print('----未找到关于地表水标准的配置文件,请确认已经正确创建----')self.log_data_Text.insert(END, '未找到关于地表水标准的配置文件,请确认已经正确创建')returndef openGB14848(self):try:filepath = os.path.join('./staticData', 'GBT14848-2017-t1.xls')os.startfile(filepath) # windows下打开地下水标准配置文件except:print('----未找到关于地下水标准的配置文件,请确认已经正确创建----')self.log_data_Text.insert(END, '未找到关于地下水标准的配置文件,请确认已经正确创建')returndef openSites(self):try:filepath = os.path.join('./staticData', 'sitesInfo.xls')os.startfile(filepath) # windows下打开地表水标准配置文件except:print('----未找到关于地下水标准的配置文件,请确认已经正确创建----')self.log_data_Text.insert(END, '未找到关于地下水标准的配置文件,请确认已经正确创建')returndef gui_start():window = Tk() # 实例化出一个父窗口ZMJ_PORTAL = EMSAS(window)# 设置根窗口默认属性ZMJ_PORTAL.set_window()window.mainloop() # 父窗口进入事件循环,可以理解为保持窗口运行,否则界面不展示if __name__ == "__main__":gui_start()
五、论文参考
- 计算机毕业设计选题推荐-污水处理大数据平台论文参考:
六、系统视频
污水处理大数据平台项目视频:
大数据毕业设计选题推荐-污水处理大数据平台-Hadoop
结语
大数据毕业设计选题推荐-污水处理大数据平台-Hadoop-Spark-Hive
大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:私信我
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目
相关文章:

大数据毕业设计选题推荐-污水处理大数据平台-Hadoop-Spark-Hive
✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…...
最新获取支付宝cardIndex参数图文教程
本章教程主要介绍如何获取支付宝的cardIndex参数。 目录 一、登录到支付宝官网 二、在历史记录中,找到对应用户 一、登录到支付宝官网...

Linux学习第二枪(yum,vim,g++/gcc,makefile的使用)
前言:在我的上一篇Linux博客我已经讲了基础指令和权限,现在我们来学习如何在Linux上运行和执行代码 目录 一,yum 二,vim 1)命令行模式 2)插入模式 3)底行模式 三,gcc/g 四&a…...

自然语言处理(一):RNN
「循环神经网络」(Recurrent Neural Network,RNN)是一个非常经典的面向序列的模型,可以对自然语言句子或是其他时序信号进行建模。进一步讲,它只有一个物理RNN单元,但是这个RNN单元可以按照时间步骤进行展开…...

超全总结!大模型算法面试指南(含答案)
大家好,从 2019 年的谷歌 T5 到 OpenAI GPT 系列,参数量爆炸的大模型不断涌现。可以说,LLMs 的研究在学界和业界都得到了很大的推进,尤其去年 11 月底对话大模型 ChatGPT 的出现更是引起了社会各界的广泛关注。 近些年࿰…...
前端使用C-lodop 实现循环套打小案例
目录 前言引入js文件小案例 前言 lodop是一个很优秀打印插件,具体的大家可以官网了解,先在官网下载插件,安装在本地,并启动,点击官网下载 引入js文件 //本JS是加载Lodop插件或Web打印服务CLodop/Lodop7的综合示例&a…...

基于SpringBoot+Vue+mysql卓越导师双选系统设计与实现
博主介绍:✌Csdn特邀作者、博客专家、博客云专家、B站程序阿龙带小白做毕设系列,项目讲解、B站粉丝排行榜前列、专注于Java技术领域和毕业项目实战✌ 系统说明简介: 如今的信息时代,对信息的共享性,信息的流通性有着较…...

Windows 11系统cmd终端美化、Vscode终端美化
win11美化cmd终端和vscode的终端 1. 修改终端背景2. oh-my-posh2.1 安装oh-my-posh2.2 安装Clink2.3 Clink配置oh-my-posh2.4 下载和配置Nerd字体2.5 修改美化主题 3. vscode终端美化 电脑默认的终端没有语法高亮这些,运行命令和代码输出字体一样,有时会…...

[游戏中的图形学实时渲染技术] Part1 实时阴影技术
原理篇: 常见的渲染方程如下: 在不考虑自发光项与考虑阴影对于着色结果的影响之后可以将方程变化为如下形式: 如果射线在到达光源前击中了其他物体时,就认为这条来自光源的光线对着色点没有贡献。 利用上述渲染方程进行正确的着…...

NtripShare Mos地铁自动化监测终端盒子硬件设计
自动化监测产品到目前为止做了接近一年,在软件层面上,控制终端软件、平台软件、网平差算法都已解决,硬件盒子始终是心里过不去的坎,最终还是没有耐住性子自己做了一把。 选型如下: 1、主板:瑞芯微RK3568主板。 2、外…...

第 117 场 LeetCode 双周赛题解
A 给小朋友们分糖果 I 动态规划:设 p [ k ] [ i ] p[k][i] p[k][i] 为将 i i i 个糖果分给 k k k 个小朋友的方案数,先求 p [ 2 ] [ i ] p[2][i] p[2][i] ,再求 p [ 3 ] [ n ] p[3][n] p[3][n] class Solution { public:using ll long …...

OpenCV C++ 图像处理实战 ——《多二维码识别》
OpenCV C++ 图像处理实战 ——《多二维码识别》 一、结果演示二、zxing库配置2.1下载编译三、多二维码识别3.1 Method one3.1.1 源码3.2 Method two3.2.1 源码四、源码测试图像下载总结一、结果演示 </...
经典算法(查找与排序)
查找 顺序查找 顺序查找(Linear Search)是一种在有序数组中查找目标元素的基本算法。它的时间复杂度为 O(n),适用于查找少量数据。顺序查找的基本思想是从数组的第一个元素开始,逐个与待查找的元素进行比较,直到找到…...

微软和Red Hat合体:帮助企业更方便部署容器
早在2015年,微软就已经和Red Hat达成合作共同为企业市场开发基于云端的解决方案。时隔两年双方在企业市场的多个方面开展更紧密的合作,今天两家公司再次宣布帮助企业更方便地部署容器。 双方所开展的合作包括在微软Azure上部署Red Hat OpenShift…...

ZYNQ_project:IP_ram_pll_test
例化MMCM ip核,产生100Mhz,100Mhz并相位偏移180,50Mhz,25Mhz的时钟信号。 例化单口ram,并编写读写控制器,实现32个数据的写入与读出。 模块框图: 代码: module ip_top(input …...

Leetcode刷题详解——优美的排列
1. 题目链接:526. 优美的排列 2. 题目描述: 假设有从 1 到 n 的 n 个整数。用这些整数构造一个数组 perm(下标从 1 开始),只要满足下述条件 之一 ,该数组就是一个 优美的排列 : perm[i] 能够被…...

[PHP]Kodexplorer可道云 v4.47
KodExplorer可道云,原名芒果云,是基于Web技术的私有云和在线文件管理系统,由上海岱牧网络有限公司开发,发布于2012年6月。致力于为用户提供安全可控、可靠易用、高扩展性的私有云解决方案。 用户只需通过简单环境搭建,…...

C/C++数字判断 2021年9月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
目录 C/C数字判断 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C数字判断 2021年9月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 输入一个字符,如何输入的字符是数字&#x…...

云栖大会丨桑文锋:打造云原生数字化客户经营引擎
近日,2023 云栖大会在杭州举办。今年云栖大会回归了 2015 的主题:「计算,为了无法计算的价值」。神策数据创始人 & CEO 桑文锋受邀出席「生态产品与伙伴赋能」技术主题,并以「打造云原生数字化客户经营引擎」为主题进行演讲。…...

如何用java写一个网站:从零搭建个性化网站
随着互联网的迅猛发展,Java作为一种强大而灵活的编程语言,为构建各类网站提供了丰富的解决方案。本文将探讨如何使用Java编写一个个性化网站,并通过具体实例进行深入分析。 第一步:选择适当的技术栈 在着手构建网站之前࿰…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...