风云二号02批卫星数据格式详解:S-VISSR、存档与HDF格式

需积分: 9 9 下载量 13 浏览量 更新于2024-07-28 收藏 1.26MB PDF 举报
《风云二号》(FY-2C)是2004年发射的一颗静止气象卫星,定点在赤道105°E上空,主要的有效载荷为红外和可见光自旋扫描辐射器VISSR。该卫星的数据格式对于理解和分析其收集到的气象信息至关重要。 首先,卫星介绍部分阐述了FY-2C的发射背景和运行位置,这对于理解数据获取的地理位置和时间范围非常重要。FY-2C的有效载荷——VISSR,其技术指标包括不同的波段覆盖,如可见光和红外,这些波段用于观测不同的气象现象,如云层、雪、水体、地面温度等。 接下来,重点讨论的是FY-2C的广播数据格式S-VISSR2.0。该版本与FY-2B卫星的S-VISSR传输格式存在明显区别,体现在同步码长度的不同:FY-2B的同步码长达20000比特,而FY-2C为了适应更紧凑的传输时间,同步码被缩短。这表明数据处理和传输效率有所优化,但可能对数据完整性或接收端的解码带来挑战。 此外,FY-2C还提供了存档数据格式CSV,这是一种压缩格式,便于存储和处理大量的VISSR数据。存档数据包含了S-VISSR的压缩数据文件以及质量控制文件,质量控制部分详细说明了如何确保数据的准确性和可靠性,包括质量控制标准和南北半球划分图的使用。 最后,FY-2C的标称投影数据集产品(NOM)采用了HDF文件格式,这是一种高效的数据存储和组织方式,特别是对于地理空间数据。标称投影是对地球表面进行标准化处理后得到的投影方式,有助于用户直观地分析数据。NOM文件包含了数据集的内容结构,使得用户能够方便地访问和利用这些气象数据。 风云二号卫星FY-2C的数据格式涵盖了从卫星硬件、有效载荷特性到数据传输和存储的各种细节,这些知识点对于卫星数据用户、科研人员以及气象学家来说都是至关重要的,它们直接影响着气象信息的获取、处理和应用的效率和准确性。

import cv2 import face_recognition import numpy as np from PIL import Image, ImageDraw,ImageFont video_capture = cv2.VideoCapture(r'C:/Users/ALIENWARE/123.mp4')#如果输入是(0)为摄像头输入 #现输入为MP4进行识别检测人脸 first_image = face_recognition.load_image_file("1.jpg") first_face_encoding = face_recognition.face_encodings(first_image)[0] Second_image = face_recognition.load_image_file("2.jpg") Second_face_encoding = face_recognition.face_encodings(Second_image)[0] third_image = face_recognition.load_image_file("3.jpg") third_face_encoding = face_recognition.face_encodings(third_image)[0] inside_face_encodings = [first_face_encoding,Second_face_encoding,third_face_encoding] inside_face_names = ['A','B','C'] face_locations = [] face_encodings = [] face_names = [] process_this_frame = True while True: ret, frame = video_capture.read() small_frame = cv2.resize(frame, (0, 0), fx=0.25, fy=0.25) rgb_small_frame = small_frame[:, :, ::-1] if process_this_frame: face_locations = face_recognition.face_locations(rgb_small_frame) face_encodings = face_recognition.face_encodings(rgb_small_frame, face_locations) face_names = [] for face_encoding in face_encodings: matches = face_recognition.compare_faces(inside_face_encodings, face_encoding) name = '未录入人脸' if True in matches: first_match_index = matches.index(True) name = inside_face_names[first_match_index] face_names.append(name) process_this_frame = not process_this_frame for (top, right, bottom, left), name in zip(face_locations, face_names): top *= 4 right *= 4 bottom *= 4 left *= 4 cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2) img_pil = Image.fromarray(frame) draw = ImageDraw.Draw(img_pil) fontStyle = ImageFont.truetype("C:/Windows/Fonts/simsun.ttc", 32, encoding="utf-8") draw.text((left + 6, bottom - 6), name, (0, 200, 0), font=fontStyle) frame = np.asarray(np.array(img_pil)) cv2.imshow('face_out', frame) if cv2.waitKey(1) & 0xFF == ord('q'): #退出需要按下Q键否则内核会崩溃 break video_capture.release() cv2.destroyAllWindows()

2023-06-07 上传

写出以下代码的函数说明:# 界面初始化,设置界面布局 def initUI(self): main_widget = QWidget() main_layout = QHBoxLayout() font = QFont('楷体', 15) # 主页面,设置组件并将组件放在布局上 left_widget = QWidget() left_layout = QVBoxLayout() img_title = QLabel("样本") img_title.setFont(font) img_title.setAlignment(Qt.AlignCenter) self.img_label = QLabel() img_init = cv2.imread(self.to_predict_name) h, w, c = img_init.shape scale = 400 / h img_show = cv2.resize(img_init, (0, 0), fx=scale, fy=scale) cv2.imwrite("images/show.png", img_show) img_init = cv2.resize(img_init, (224, 224)) cv2.imwrite('images/target.png', img_init) self.img_label.setPixmap(QPixmap("images/show.png")) left_layout.addWidget(img_title) left_layout.addWidget(self.img_label, 1, Qt.AlignCenter) left_widget.setLayout(left_layout) right_widget = QWidget() right_layout = QVBoxLayout() btn_change = QPushButton(" 上传图片 ") btn_change.clicked.connect(self.change_img) btn_change.setFont(font) btn_predict = QPushButton(" 开始识别 ") btn_predict.setFont(font) btn_predict.clicked.connect(self.predict_img) label_result_f = QLabel(' 花卉名称 ') self.result_f = QLabel("等待识别") self.label_info = QTextEdit() self.label_info.setFont(QFont('楷体', 12)) label_result_f.setFont(QFont('楷体', 16)) self.result_f.setFont(QFont('楷体', 24)) right_layout.addStretch() right_layout.addWidget(label_result_f, 0, Qt.AlignCenter) right_layout.addStretch() right_layout.addWidget(self.result_f, 0, Qt.AlignCenter) right_layout.addStretch() right_layout.addWidget(self.label_info, 0, Qt.AlignCenter) right_layout.addStretch() right_layout.addWidget(btn_change) right_layout.addWidget(btn_predict) right_layout.addStretch() right_widget.setLayout(right_layout)

2023-06-02 上传