# ---------------------------------------------------------------------------
# -*- coding: utf-8 -*-
# QiXiangAnalyze.py
# Created on: 2012-07-04 08:15:21.00000
# Creater: GISPathfinder
# Usage: isolineAnalyze <station> <reclassificationString> <isoResult>
# Description:
# ---------------------------------------------------------------------------

import time
import datetime
from struct import *
from bz2 import BZ2File
import sys, os, arcpy

arcpy.env.overwriteOutput = True

start = time.clock()

file = open(r"F:/geodata/shanxi/MapData/GP/QiXiang/FL2/1607080900.000", "r")

#
zonName,flag,dataName = unpack("8s3s40s", file.read(51))
zonName = zonName.decode("gbk").rstrip('\x00')
dataName = dataName.decode("gbk").rstrip('\x00')

#
print(zonName)
print(dataName)
#
#file.read(5+3+3+3)
year,month,day,hour = unpack("5s3s3s3s", file.read(14)) # 时间说明
#print(year + " " + month+ " " + day+ " " + hour)
dateTimeData = datetime.datetime(int(year),int(month), int(day), int(hour), 0, 0, 0)
fileNameParseResult = dateTimeData.strftime("%Y%m%d%H%M%S")
asciiGrid = "F:\\geodata\\shanxi\\MapData\\GP\\QiXiang\\temp\\"+fileNameParseResult+".txt"
print(fileNameParseResult)

XNumGrids,YNumGrids,= unpack("5s5s", file.read(10))
XNumGrids = int(XNumGrids.decode("gbk").rstrip('\x00'))
YNumGrids = int(YNumGrids.decode("gbk").rstrip('\x00'))
print("X: " + str(XNumGrids)+" Y: "+str(YNumGrids))

StartLon,StartLat,= unpack("8s8s", file.read(16)) # 开始经度 开始纬度
StartLon = float(StartLon.decode("gbk").rstrip('\x00'))
StartLat = float(StartLat.decode("gbk").rstrip('\x00'))
print("StartLon "+str(StartLon)+" StartLat"+str(StartLat))

project,reso,imageType,= unpack("2s5s2s", file.read(9))
project = int(project.decode("gbk").rstrip('\x00')) # 投影方式
reso = float(reso.decode("gbk").rstrip('\x00')) # 分辨率
imageType = int(imageType.decode("gbk").rstrip('\x00')) # 图象类型
print("project " + str(project))
print("reso " + str(reso))
print("imageType " + str(imageType))

refTable, = unpack("12s", file.read(12))
refTable = refTable.decode("gbk").rstrip('\x00')

CenterLon,CenterLat,= unpack("8s8s", file.read(16)) # 中心经度 中心纬度
CenterLon = float(CenterLon.decode("gbk").rstrip('\x00'))
CenterLat = float(CenterLat.decode("gbk").rstrip('\x00'))
print("CenterLon "+str(CenterLon)+" CenterLat "+str(CenterLat))

textYX = []
for j in range(0, YNumGrids):
textX = []
for k in range(0, XNumGrids):
value, = unpack("B", file.read(1))
textX.append(str(value))
textYX.append(' '.join(textX)+'\n')
file.close()

#
textYX.reverse()
#
#-------------------------------------------------------------------------------
#file_object = open('ASCIIDataQPF.txt', 'w')
#
file_object = open(asciiGrid, 'w')
file_object.write("NCOLS " + str(XNumGrids) + "\n")
file_object.write("NROWS " + str(YNumGrids) + "\n")
file_object.write("XLLCENTER " + str(StartLon) + "\n")
file_object.write("YLLCENTER " + str(StartLat) + "\n") # round(YReso, 3) *
file_object.write("CELLSIZE " + str(reso) + "\n")
file_object.write("NODATA_VALUE " + str(-9999) + "\n")
#
#
file_object.writelines(textYX)
file_object.close()
end = time.clock()
dateSpanTransfer = end - start
print("read: %f s" % dateSpanTransfer)
dateSpanTransfer = end - start

#file.read(1)
#-------------------------------------------------------------------------------

projXa80Proj = 'PROJCS["Xian80_Projected_Coordinate_System",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["false_easting",0.0],PARAMETER["false_northing",0.0],PARAMETER["central_meridian",110.0],PARAMETER["standard_parallel_1",30.0],PARAMETER["standard_parallel_2",60.0],PARAMETER["latitude_of_origin",0.0],UNIT["Meters",1.0]]'

projXa80 = 'GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]'

projWGS84 = "GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]]"

rasterData = "F:\\geodata\\shanxi\\MapData\\GP\\QiXiang\\temp\\" + fileNameParseResult+".img"

#rasterProject = "F:\\geodata\\shanxi\\MapData\\GP\\QiXiang\\Result\\FL2Raster.gdb\\FY" + fileNameParseResult
rasterProject = "F:\\geodata\\shanxi\\MapData\\GP\\QiXiang\\Result\\" + fileNameParseResult+".img"

inputLinkFile = "F:\\geodata\\shanxi\\MapData\\GP\\QiXiang\\Result\\DBZTic.txt"

FL2Dataset = "F:\\geodata\\shanxi\\MapData\\GP\\QiXiang\\Result\\FL2Raster.gdb\\FL2Dataset"

colorMapFile = "F:\\geodata\\shanxi\\MapData\\GP\\QiXiang\\V-02.clr"

# Process: ASCII to Raster
arcpy.ASCIIToRaster_conversion(asciiGrid, rasterData, "INTEGER")

# Process: Define Projection
arcpy.DefineProjection_management(rasterData, projXa80Proj)

# Process: Register Raster
arcpy.RegisterRaster_management(rasterData, "REGISTER", "", inputLinkFile, "POLYORDER1", "")

# Process: Project Raster
arcpy.ProjectRaster_management(rasterData, rasterProject, projXa80, "NEAREST", 0.15, "", "", projXa80Proj)

# Process: Define Projection
arcpy.DefineProjection_management(rasterProject, projWGS84)

# Process: Add Colormap
arcpy.AddColormap_management(rasterProject, "", colorMapFile)

# Process: Add Rasters To Mosaic Dataset
arcpy.AddRastersToMosaicDataset_management(FL2Dataset, "Raster Dataset", rasterProject, "UPDATE_CELL_SIZES", "UPDATE_BOUNDARY", "NO_OVERVIEWS", "", "0", "1500", "", "", "SUBFOLDERS", "ALLOW_DUPLICATES", "BUILD_PYRAMIDS", "CALCULATE_STATISTICS", "NO_THUMBNAILS", "", "NO_FORCE_SPATIAL_REFERENCE")

#arcpy.AddRastersToMosaicDataset_management(FL2Dataset, "Raster Dataset", rasterProject, "NO_CELL_SIZES", "NO_BOUNDARY", "NO_OVERVIEWS", "", "0", "1500", "", "", "SUBFOLDERS", "ALLOW_DUPLICATES", "BUILD_PYRAMIDS", "CALCULATE_STATISTICS", "NO_THUMBNAILS", "", "NO_FORCE_SPATIAL_REFERENCE")

print("OK")

风云2号云图Mosaic Dataset处理的更多相关文章

  1. 镶嵌数据集 Mosaic Dataset 的常见数据组织方式

    镶嵌数据集是ESRI公司推出一种用于管理海量影像数据的数据模型,定义在GeoDatabase数据模型中. 它的常见数据组织方式有两种: 1. 源镶嵌数据集 Source Mosaic Dataset ...

  2. 用DataSet方式更新数据库表

    /* 用DataSet的方式更新数据库表 * 注意:用DataSet更新数据库表的时候,该表必须指定主键或者是唯一列 */ string connString = "Data Source= ...

  3. IDLHDF5读取与转换

    需求决定了动力,此时近凌晨一点,忙里偷闲,终于忙完了今天的“这点儿”事儿.参考帮助文档,从hdf的读写,捉摸hdf5的读写,总算弄明白了.稍作总结,以备候查. hdf5作为hdf数据的补充与升级,目前 ...

  4. 使用C#版本的gdal库打开hdf文件

    作者:朱金灿 来源:http://blog.csdn.net/clever101 最近应同事的请求帮忙研究下使用C#版的gdal库读取hdf文件,今天算是有一点成果,特地做一些记录. 首先是编译C#版 ...

  5. taihong

    揭秘!除了台风 我们还能在卫星云图上看到什么? 2019-08-08 09:20:53 来源: 中国天气网   中国天气网讯 说到卫星云图,可能大多数人首先能想到的就是台风.其实,拥有太空视角的卫星能 ...

  6. ArcEngine 栅格数据

    1.ArcEngine中的栅格数据组织方式(详细信息见:http://resources.arcgis.com/zh-cn/help/main/10.1/index.html#/na/009t0000 ...

  7. java上传xls文件

    using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System. ...

  8. ArGIS Server 服务的更新

    对于普通地图服务更新 [产品版本]:arcgis for server 10.1,10.1 sp1,10.2及以上 [问题分析]: 由于在10.1中地图服务的发布采用的是msd的形式,也就是虽然在Ar ...

  9. ArcGIS提取影像边界

    基于ArcGIS有多重办法可以提取影像边界,比如常用的有以下几种方式: a.System Toolboxes --> 3D Analyst Tools --> Conversion --& ...

随机推荐

  1. 【xsy1154】 DNA配对 FFT

    题目大意:给你一个字符串$s$和字符串$w$,字符集为${A,T,C,G}$,你要在字符串$s$中选出一个与$w$长度相同的子串,使得这两个串的差异度最小. 两个字符$c1$,$c2$的差异度为给定的 ...

  2. QuantLib 金融计算——基本组件之 Currency 类

    目录 QuantLib 金融计算--基本组件之 Currency 类 概述 构造函数 成员函数 如果未做特别说明,文中的程序都是 python3 代码. QuantLib 金融计算--基本组件之 Cu ...

  3. linux 可执行文件与写操作的同步问题

    当一个可执行文件已经为write而open时,此时的可执行文件是不允许被执行的.反过来,一个文件正在执行时,它也是不允许同时被write模式而open的.这个约束很好理解,因为文件执行和文件被写应该需 ...

  4. java 中几种常用数据结构

    Java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数据结构类. 一.几个常用类的区别 1.A ...

  5. Spring Boot的listener简单使用

    监听器(Listener)的注册方法和 Servlet 一样,有两种方式:代码注册或者注解注册 1.代码注册方式 通过代码方式注入过滤器 @Bean     public ServletListene ...

  6. wordpress时间函数the_time() 详解

    一直以来,我对时间显示这一块都没有给予些微的关注,但昨天无意间在网络上看到了上面有一篇文章所说的就是the_time()时间函数,感觉很有必要整理一下,便将其中的内容整理了下来.可能很多朋友对于时间的 ...

  7. Android开发之漫漫长途 Ⅲ——Activity的显示之Window和View(2)

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...

  8. 假如想要建设一个能承受500万PV/每天的网站,服务器每秒要处理多少个请求才能应对?

    假如想要建设一个能承受500万PV/每天的网站,服务器每秒要处理多少个请求才能应对?如何计算? 1.PV是什么:PV是page view的简写.PV是指页面的访问次数,每打开或刷新一次页面,就算做一个 ...

  9. centos7设置SSH安全策略–指定IP登陆

    之前自己搭建了个博客网站(理想三旬),写了些文章,但是由于一些原因慢慢将文章放在博客园了.所以这里将一些文章复制过来.便于以后自己查询. 为了服务器的安全性,我们在日常使用需要授予权限和指定ip登陆来 ...

  10. 127.0.0.1和0.0.0.0和本机IP的区别

    在一次网络课程的听课中,我突然察觉到自己有个疑惑就是在配置一些服务的时候我们会用到localhost(127.0.0.1)或者0.0.0.0 和当前主机IP这三个.那么具体该怎么使用这三个地址,这三个 ...