airq

package module
v0.1.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 28, 2019 License: MIT Imports: 9 Imported by: 0

README

airq

GoDoc Go Report Card

$ go get -u github.com/JedBeom/airq

공공 데이터 포털을 이용해 대기 오염 정보를 불러오는 개발 상태의 패키지입니다. 기능이 갑작스레 추가되거나 삭제될 수 있습니다.

현재 지원하는 기능은 측정소별 실시간 측정정보 조회이며, 공공 데이터 포털에서 서비스 키를 발급받아야 사용 가능합니다.

Example

key.txt

yourservicekeyhere
package main

import (
    "fmt"
    "github.com/JedBeom/airq"
)

func main() {
    err := airq.GetKeyFile("key.txt")
    if err != nil {
        panic(err)
    }

    quality, err := airq.NowByStation("종로구")
    if err != nil {
        panic(err)
    }

    fmt.Println(quality)
}

Documentation

Overview

Package airq gets air qulity of South Korea. airq 패키지는 대한민국의 대기질을 가져옵니다. 현재는 측정소별 현재 상태만 가져올 수 있습니다.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetKeyEnv added in v0.1.3

func GetKeyEnv(env string) (err error)

GetKeyEnv 함수는 환경변수에서 값을 가져옵니다.

func GetKeyFile added in v0.1.3

func GetKeyFile(filename string) error

GetKeyFile 함수는 filename 파일을 열어서 그 안에 있는 서비스 키를 그대로 입력받습니다.

func SetKey added in v0.1.3

func SetKey(key string) (err error)

SetKey 함수는 서비스 키를 직접 인자로 받습니다.

Types

type AirQuality

type AirQuality struct {
	DataTimeString string    `xml:"body>items>item>dataTime"` // 오염도 측정 연-월-일 시간:분
	DataTime       time.Time // DataTimeString 변수를 time.Time으로 파싱 후 저장하기 위함.

	StationName string // 측정소 이름

	MangName string `xml:"body>items>item>mangName"` // 측정망 정보 (국가배경, 교외대기, 도시대기, 도로변대기)

	So2Value float32 `xml:"body>items>item>so2Value"` // 아황산가스 농도 (ppm)
	Co2Value float32 `xml:"body>items>item>co2Value"` // 일산화탄소 농도 (ppm)
	O3Value  float32 `xml:"body>items>item>o3Value"`  // 오존 농도 (ppm)
	No2Value float32 `xml:"body>items>item>no2Value"` // 이산화질소 농도 (ppm)

	Pm10Value   int `xml:"body>items>item>pm10Value"`   // 미세먼지(PM10) 농도 (µg/m³)
	Pm10Value24 int `xml:"body>items>item>pm10Value24"` // 미세먼지(PM10) 24시간 예측 이동 농도 (µg/m³)
	Pm25Value   int `xml:"body>items>item>pm25Value"`   // 미세먼지(PM2.5) 농도 (µg/m³)
	Pm25Value24 int `xml:"body>items>item>pm25Value24"` // 미세먼지(body>items>item>pm2.5) 24시간 예측 이동 농도 (µg/m³)
	KhaiValue   int `xml:"body>items>item>khaiValue"`   // 통합대기환경수치

	KhaiGrade int `xml:"body>items>item>khaiGrade"` // 통합대기환경지수 (1-4)
	So2Grade  int `xml:"body>items>item>so2Grade"`  // 아황산가스 지수 (1-4)
	CoGrade   int `xml:"body>items>item>coGrade"`   // 일산화탄소 지수 (1-4)
	O3Grade   int `xml:"body>items>item>o3Grade"`   // 오존 지수 (1-4)
	No2Grade  int `xml:"body>items>item>no2Grade"`  // 이산화질소 지수 (1-4)

	Pm10GradeKorea   int `xml:"body>items>item>pm10Grade1h"` // 미세먼지(PM10) 1시간 등급자료 한국 기준 (1-4)
	Pm10Grade24Korea int `xml:"body>items>item>pm10Grade"`   // 미세먼지(PM10) 24시간 등급자료 한국 기준 (1-4)
	Pm10GradeWHO     int // 미세먼지(PM10) 1시간 등급자료 WHO 기준 (1-8)
	Pm10Grade24WHO   int // 미세먼지(PM10) 24시간 등급자료 WHO 기준 (1-8)

	Pm25GradeKorea   int `xml:"body>items>item>pm25Grade1h"` // 미세먼지(PM2.5) 1시간 등급 자료 한국 기준 (1-4)
	Pm25Grade24Korea int `xml:"body>items>item>pm25Grade"`   // 미세먼지(PM2.5) 24시간 등급 자료 한국 기준 (1-4)
	Pm25GradeWHO     int // 미세먼지(PM2.5) 1시간 등급자료 WHO 기준 (1-8)
	Pm25Grade24WHO   int // 미세먼지(PM2.5) 24시간 등급자료 WHO 기준 (1-8)
}

AirQuality 구조체(보통 주석에서는 airq로 줄여부름)는 대기 오염 정보 필드들을 가지고 있는 구조체이다.

func ByStation added in v0.1.2

func ByStation(stationName string, rows int) (qualities []AirQuality, err error)

ByStation 함수는 stationName을 기반으로 Airq를 가져온다. 몇개의 정보를 가져올 지 정할 수 있다.

func NowByStation added in v0.1.2

func NowByStation(stationName string) (quality AirQuality, err error)

NowByStation 함수는 ByStation 함수를 이용해 현재의 Airq만 리턴한다.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL