获取气象日值数据

分类:test系列 | 标签: lisp   日值   数据   处理  
2020-12-09 21:45 阅读(?)评论(0)

获取气象日值数据.lsp

最后修改时间: 12/09/2020 21:41:53
;;;功能:地面气候资料日值数据,预处理
;;;日期:zml84 于 2020-12-09
(defun c:tt ()

  ;;降水
  (setq	path1	 "E:\\..\\【资料04】气象数据(2010-2017)\\weather\\SURF_CLI_CHN_MUL_DAY-"
	path2	 "PRE-13011-"
	lst_str '( "区站号"  "维度"   "经度"   "海拔"   "年"   "月"   "日"  "20-8时降水量"  "8-20时降水量"  "20-20累计降水量")
  )

  ;;蒸发
  (setq	path1	 "E:\\..\\【资料04】气象数据(2010-2017)\\weather\\SURF_CLI_CHN_MUL_DAY-"
	path2	 "EVP-13240-"
	lst_str '( "区站号"  "维度"   "经度"   "海拔"   "年"   "月"   "日"  "小型蒸发量"  "大型蒸发量")
  )
  
  ;;台站编号
  (setq ID 57083) ;_郑州

  ;;开始时间
  (setq	yyyy 2010
	mm   1
  )

  ;;结束时间
  (setq	yyyy_end 2017
	mm_end 10
  )


  (setq lst '())
  (while (or (< yyyy yyyy_end)
	     (and (= yyyy yyyy_end) (<= mm mm_end))
	 )
    (princ(strcat "\n年份=" (itoa yyyy) "\t月份=" (itoa mm)))
    (if	(and
	  (setq	file (strcat path1 path2
			     (itoa yyyy)
			     (if (< mm 10)
			       "0"
			       ""
			     )
			     (itoa mm)
			     ".txt"
		     )
	  )
	  (findfile file)
	  (setq tmp (ZL-TXTFILE->NUMLIST file)) ;_当前月份的所有台站数据

	  ;;筛选出当前台站数据
	  (setq	tmp (vl-remove-if-not
		      (function (lambda (e) (= (car e) id)))
		      tmp
		    )
	  )

	)
      (setq lst (append lst tmp))
    )

    ;;下一个月份
    (if	(< mm 12)
      (setq mm (1+ mm))
      (setq yyyy (1+ yyyy)
	    mm	 1
      )
    )

  )

  ;; 3、全部数据,输出显示
  (setq lst (cons lst_str lst))
  (zl-list->txtfile lst (strcat "d:\\" path2 ".txt"))
  (ZL-TXTFILE-SHOW (strcat "d:\\" path2 ".txt"))

  (princ)
)
  最后修改于 2020-12-09 21:53    阅读(?)评论(0)
 
表  情:
加载中...
 

请各位遵纪守法并注意语言文明