[8월 전국평균기온 및 강수량 변화 (1973년 ~ 2020년)]

     

[평균기온 변화]

그림1. 1973년 ~ 2020년 8월 전국 평균기온

 

  • 기상청에서 전국 1973년부터 2020 년까지 연속해서 관측자료가 있는 60개 지점의 기상관측자료를 분석한 결과 2020년 8월 평균기온은 26.6평년(25.2)보다 1.4 높아 8월 평균기온 역대순위 6위를 기록하였다.

  • 8월기온의 장기변화 경향을 분석한 결과 평균기온 상승률은 0.24/10yr로 나타났다. (10년에 약 0.24도 상승)

  • 전국 모든 지역에서 기온이 상승한 가운데 전국 60개 관측지점 중 8월 기온상승률이 가장 높은 지역은 원주(0.49/10yr)로 나타났으며, 이어 청주(0.456/10yr), 수원(0.449/10yr) 등의 순이었다. 

 

[8월 평균기온 순위]

  • 가장 높았던 해의 순위

순위 년도 평균기온(℃)
1 2018 27.25
2 2013 27.18
3 1994 26.82
4 2010 26.81
5 2016 26.67

 

 

  • 가장 낮았던 해의 순위

순위 년도 평균기온 (℃)
1 1980 22.04
2 1993 22.11
3 1997 23.65
4 2014 23,73
5 1991 23.82

 

 

[강수량 변화]

그림2. 1973년 ~ 2020년 8월 전국 평균 강수량

 

  • 1973년부터 2020년까지 전국 60개 관측지점의 연강수량을 분석한 결과 2020년 8월 전국평균 강수량이 369.9mm로 평년(262.85mm)대비 151% 수준으로 8월 강수량 역대순위 6위를 기록하였다.

  • 8월 강수량의 장기변화경향을 보면 강수량변화율은 8.9mm/10yr씩 증가하는 경향을 보였다.

  • 지역별로 보면 특히 남원(25.7mm /10yr), 광주(24.2mm/10yr) 등의 경우 20mm / 10yr 이상의 증가율을 보였으며, 서울지역도 10mm/10yr의 증가율을 보이고 있다. 반면 강화(-22mm/10yr), 보령(-9.9mm/10yr), 대관령(-8.7mm/10yr) 등의 지역은 강수량이 감소하는 추세를 보였다.

 

[8월 강수량 순위]

  • 가장 많았던 해의 순위

순위 년도 평균 강수량 (mm)
1 2002 595.85
2 1998 453.37
3 1987 445.94
4 1995 426.35
5 2012 416.96

 

  • 가장 적었던 해의 순위

순위 년도 평균 강수량
1 2016 85.48
2 1988 98.88
3 2001 106.96
4 1975 111.9
5 2015 118.11

 

어제 한참을 삽질을 했습니다. 

 

node js에서 rs.readFile 함수로, 30만개정도의 파일 일어서 S3로 보내는 작업을 했습니다. 

 

그런데 중간에

 

Error: EMFILE: too many open files

 

위와 같은 오류가 났습니다. 

 

그래서 해결 책을 열심히 찾았습니다. 

 

보통은 fp 라고 하는데 node js 는 fd라고 한다는 것도 알게 되었고, 

 

node js fs 패키지를 많이 사용하는데 fs.readFile함수를 이용했을 때 많은 파일을 열면 이렇게 나옵니다. 

 

여기서 해결 방법은 출처에 있는 글 처럼 

 

node js graceful-fs 패키지를 이용하면 됩니다. 

 

fs=rqquire("fs")

를 

fs=rqquire("graceful-fs")

로 변경하고 동일 하게 사용하면 저 오류가 안납니다. 

 

감사합니다. 

 

출처 : https://stackoverflow.com/questions/49672964/nodejs-too-many-open-files-causes-an-error

오늘의 개발일지 2020년06월11일 Java 파일(File) 이동(Move) 시키기 예제(Example)

안녕하세요 가야태자(@talkit) 입니다. 오늘은 Java에서 파일을 이동 시키는 것에 대해서 알아보도록 하겠습니다.

참고 출처 : https://huskdoll.tistory.com/304

실제로, 제가 앞에서 작성한 프로그램을 분석을 끝냈습니다. 그런데 문제는 뒤에 저 파일에 대한 분석을 또해야 하는 문제가 발생을 했습니다. T.T

그래서 이번에는 로그에 Founded 를 넣어서 찾으면 그 풀 Path를 가지고 있게 만들었습니다.

저 URL의 예제는 파일을 이동 시키는 코드만 있습니다.

그런데, 제예제는 파일을 한줄씩 읽고, 읽을 파일을 분석해서 이동 시키는 에제 입니다.

우선 제가 원하는 파일을 제대로 이동 시키는지를 보기 위해서 출력만 하는 소스 입니다.

package kr.ymmedia.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class SearchDEMMove {

    static List<File> targetFiles = null;

    static String baseFile = "/data01/ICECWRF/logs/SearchDEMLAT.log";    //분석할 로그 파일
    public static void main( String[] args ) throws Exception
    {

            BufferedReader br = null;

            // 분석할 로그파일을 읽음.
            br = new BufferedReader(new FileReader(new File(baseFile)));



            String line = "";

            //각 파일의 한 라인씩 읽어들인다.
            while((line = br.readLine()) != null) {

                //lins 을 " : " 구분해서 이동 시킬 파일 찾기

                String[] arrText= line.split(":");

                if(!arrText[0].trim().equals("Processing")) {

                    System.out.println("move file : " + arrText[2]);

                }

            }
            br.close();
        }

}

한번 돌려 보도록 하겠습니다.

잘돌아 갑니다.

그리고, 이제 실제로 이동하는 코드를 짜봤습니다.

package kr.ymmedia.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class SearchDEMMove {

    static List<File> targetFiles = null;

    static String baseFile = "/data01/ICECWRF/logs/SearchDEMLAT.log";    //분석할 로그 파일
    static String targetFolder ="/data01/LIDAR/gj/result_process/";
    public static void main( String[] args ) throws Exception
    {

            BufferedReader br = null;

            // 분석할 로그파일을 읽음.
            br = new BufferedReader(new FileReader(new File(baseFile)));



            String line = "";

            // 날짜 형식을 String으로 혹은 String을 날짜 형식으로 변환하기 위한 포맷형식이다.
            DateFormat format = new SimpleDateFormat("yyyyMMddHHmmssSSS");

             // Calendar형식에서 날짜를 가져온다. 특이점은 Calendar가 singleton 형식이다.
             // Date 값을 가져와서 String으로 변환한다.
             String datestr = format.format(Calendar.getInstance().getTime());
            // 혹시나 해서 현재 시간의 폴더를 만들어서 넣습니다. 


            File dir = new File(targetFolder + "/" + datestr  + "/");
            // 중복 방지를 위해서 폴더를 생성 합니다. 
            if (!dir.exists()) { //폴더 없으면 폴더 생성
                dir.mkdirs();
            }

            //각 파일의 한 라인씩 읽어들인다.
            while((line = br.readLine()) != null) {

                //lins 을 " : " 구분해서 이동 시킬 파일 찾기

                String[] arrText= line.split(":");

                if(!arrText[0].trim().equals("Processing")) {
                    System.out.println(line);
                    System.out.println("move file : " + arrText[2]);
                    // 분석된 파일을 File로 읽어 드립니다.  
                    try{
                    File file = new File(arrText[2].trim());
                    //기존 파일명만 가져옵니다. 
                    String targetFileName = file.getName();

                    System.out.println(targetFolder + "/" + datestr  + "/"  + targetFileName);

                    // 실제로 이동 시킨는 코드 입니다. 

                       if(file.renameTo(new File(targetFolder + "/" + datestr  + "/"  + targetFileName))){ //파일 이동
                            //return filePath; //성공시 성공 파일 경로 return
                        }else{
                            //return null;
                        }

                    }catch(Exception e){
                        e.printStackTrace();
                        // 파일이 없으면 오류를 뿌리기 while 문을 계속 합니다.
                        continue;
                    }



                }




            }
            br.close();
        }

}

그리고, 날짜 형식 관련 소스는 https://nowonbun.tistory.com/502 의 글을 참고 했습니다.

오늘은 여기 까지 입니다.

오늘도 즐거운 하루 되십시오.

감사합니다.

+ Recent posts