크리깅(Kriging) 분석에 대한 색상 시각화

아래의 결과는 크리깅(Kriging) 분석을 통한 보간 결과(공간상의 숫자값은 보간을 위한 입력 값이 아닌 단순 번호임)입니다. 크리깅 보간의 결과값의 범위가 최대값 7.4, 최소값 0.6이 산출된 경우입니다. 최대값은 빨간색으로 최소값은 초록색으로 표현하고 있습니다.

단순히 시각적인 관점으로 보면 나쁘진 않은데, 문제는.. 빨간색은 위험 범위의 값일 경우 표현에 사용하고자 한다는데 있습니다. 위험 수위 값은 10부터라고 정의 했을때.. 위의 경우 최대값인 7.4는 위험 수위값이 아니므로 빨간색으로 표현되면 사용자에게 혼란을 야기합니다.

위의 문제점을 개선한 동일한 크리깅 결과를 기대한 색상으로 시각화한 결과는 아래와 같습니다.

모든 지점이 10보다 작으므로 위험을 나타내는 빨간색으로 표현되지 않습니다. 바로 이게 원하는 결과입니다.

이러한 결과를 얻기 위한 색상을 정의하는 코드는 다음과 같습니다.

const colors = [
    { value: 10, steps: 10, color: [255, 0, 0, 200] },
    { value: 5, steps: 10, color: [255, 255, 0, 200] },
    { value: 0, steps: 10, color: [0, 255, 0, 200] },
    { value: -5, steps: 10, color: [0, 255, 255, 200] },
    { value: -10, color: [0, 0, 255, 200] },
];

const clrTbl = new Xr.RangesColorTable(colors);
if (clrTbl.build()) {
    gridLyr.updateByRangesColorTable(clrTbl, psd);
    map.update();
}

위의 코드는 공간 데이터를 시각화 해주는 FingerEyes-Xr에 대한 코드입니다. FingerEyes-Xr은 자바스크립트(js) 기반의 웹 GIS 라이브러리입니다.

Linux 활용 Command 정리

이 글은 리눅스 계열의 시스템 관리를 위해 사용한 명령어를 추후에 다시 빠르게 참조하기 위한 목적으로 정리한 글입니다.

# 파일명을 가진 파일 찾기

find / -name "java"

# 현재 디렉토리의 파일 용량 확인하기

du -ah

# ssh 접속 [MacOS]

ssh root@127.0.0.1 -p 1234

# 파일의 내용 중 특정 단어 출현 회수 세기 [CentOS]

cat filename.log | grep 'SUCCESS' | wc -w

# 프로세스 이름에 특정 문자열을 포함하는 프로세스 출력하기 [CentOS]

ps -ef | grep 'java'

# 파일의 마지막 구성 내용 표시하기(변경시 업데이트) [CentOS]

 tail 2019-11-06.log -f

# firewalld 서비스 시작 [CentOS]

sudo systemctl start firewalld

# firewalld 서비스 상태 확인 [CentOS]

sudo firewall-cmd --state

# 부팅 시 firewalld 서비스 자동 실행 설정 [CentOS]

sudo systemctl enable firewalld

# 특정 포트(예: 8629)에 대한 방화벽 열기 [CentOS]

firewall-cmd --zone=public --permanent --add-port=8629/tcp
firewall-cmd --reload

# 방화벽에 대해 열린 포트(예: 8629)를 제거 [CentOS]

firewall-cmd --permanent --zone=public --remove-port=8629/tcp
firewall-cmd --reload

# 방화벽에 대해 열린 포트 확인 [CentOS]

firewall-cmd --zone=public --list-all

# 포트를 사용하는 프로세스 확인 [CentOS]

netstat -tulpn | grep

# 계정 ID 확인 [CentOS]

cut -f1 -d: /etc/passwd

# 서버에서 다른 호스트로 연결 가능한지 여부 확인

nc -z smtp.gmail.com 465

openssl s_client -connect smtp.gmail.com:465

[THREE.JS-EX] Shader





이 글의 예제 코드는 THREE.JS 공식 사이트의 EXAMPLES에서 제공되는 코드를 이해하고 제 나름대로의 코드로 재구성한 것입니다.

Javascript의 디스트럭처링(Destructuring)

자바스크립트의 디스트럭처링은 객체와 배열에 적용이 가능한데요. 디스트럭처링은 객체와 배열을 구성하는 개별 요소를 독립적인 상수나 변수에 저장하는 방법입니다.

먼저 객체에 대한 디스트럭처링 예제는 다음과 같습니다.

const Dip2K = {
    name: "김형준",
    company: {
        name: "GEOSERVICE",
        contacts: {
            address: "에이펙센터 208",
            telephone: "02-525-0421"
        }
    }
}

const { name } = Dip2K
console.log(name) // 김형준

const { address, telephone } = Dip2K.company.contacts
console.log(address, telephone) // 에이펙센터 208 02-525-0421

const { name: companyName} = Dip2K.company
console.log(companyName) // GEOSERVICE

const { alias = "닌자" } = Dip2K.company
console.log(alias) // 닌자

다음은 배열에 대한 디스트럭처링 예제입니다.

const Dip2K = [ "김형준", "지오서비스", "hjkim@geoservice.co.kr" ]

const [name, company, email] = Dip2K
//console.log(name, company, email) // 김형준 지오서비스 hjkim@geoservice.co.kr

const [name2, company2 ] = Dip2K
//console.log(name2, company2) // 김형준 지오서비스

const [name3, ...others] = Dip2K 
console.log(name3, others) // 김형준 (2) ['지오서비스', 'hjkim@geoservice.co.kr']