[관측일지] #56. 방전

기록표

일시 & 장소

  • 날짜 : 11.14 ~ 11.15
  • 관측지 : 연천 (…)

하늘의 상태

  • 날씨 : 30/100 (좋지 않음)
  • 구름 : 50/100 (항상 구름이 어딘가엔가는 깔려있었음)
  • 시상 : 30/100 (매우 안좋음)

장비

  • Set #1 : Canon EOS 80D + Canon EF-s 18-55mm f3.5-5.6 II USM + Simple Tripod

목표

  • 없음

결과

  • 기초적인 대상 관측(?)

[관측일지] #55. 오랜만의 성공

기록표

일시 & 장소

  • 날짜 : 10.24 ~ 10.25
  • 관측지 : 인제 (…)

하늘의 상태

  • 날씨 : 95/100 (풀타임 관측 가능)
  • 구름 : 5/100 (지평선 근처에 미세하게 깔려있음)
  • 시상 : 90/100 (훌륭)

장비

  • Set #1 : Vixen GPD (w/ EQ5 control motor) + Canon 650D (LPF removed) + William Optics Star-71
  • Set #2 : Canon EOS 80D + Canon EF-s 18-55mm f3.5-5.6 II USM + Simple Tripod

목표

  • 딥스카이 아무거나 2개정도 촬영

결과

  • 말머리성운 : 촬영 성공(사진 참고)
  • 마귀할멈성운 : 촬영 성공(사진 참고)

[관측일지] #54. 다음 기회에

기록표

일시 & 장소

  • 날짜 : 9.18 ~ 9.19
  • 관측지 : 제천 (…)

하늘의 상태

  • 날씨 : 40/100 (맑은 후 흐림)
  • 구름 : 60/100 (거의 없음)
  • 시상 : 90/100 (훌륭)

장비

  • Set #1 : Vixen GPD (w/ EQ5 control motor) + Canon 650D (LPF removed) + William Optics Star-71
  • Set #2 : Canon EOS 80D + Canon EF-s 18-55mm f3.5-5.6 II USM + Simple Tripod

목표

  • 실패 (날씨가 흐림)

결과

  • 일주 : 타임랩스로 재활용

[관측일지] #53. 4년만의 재회

기록표

일시 & 장소

  • 날짜 : 8.23 ~ 8.24
  • 관측지 : 횡성 천문인마을

하늘의 상태

  • 날씨 : 95/100 (풀타임 관측 가능)
  • 구름 : 5/100 (거의 없음)
  • 시상 : 80/100 (약간 애매함)

장비

  • Set #1 : Vixen GPD (w/ EQ5 control motor) + Canon 650D (LPF removed) + William Optics Star-71
  • Set #2 : Canon EOS 80D + Canon EF-s 18-55mm f3.5-5.6 II USM + Simple Tripod
  • Set #3 : Nikon F3 + Nikon 80-200mm f/4

목표

  • 날씨가 맑기를 빌기
  • 딥스카이 아무거나 촬영

결과

  • 일주 : 타임랩스로 재활용
  • M42 : 15프레임 획득
  • M45 : 8프레임 획득

[관측일지] #52. 안개의 습격

기록표

일시 & 장소

  • 날짜 : 8.23 ~ 8.24
  • 관측지 : 홍천 (…)

하늘의 상태

  • 날씨 : 25/100 (안개 가득)
  • 구름 : 70/100 (2시 이후로 구름 및 안개 가득)
  • 시상 : 50/100 (습기로 인해 시상에 문제 발생)

장비

  • Set #1 : Vixen GPD (w/ EQ5 control motor) + Canon 650D (LPF removed) + William Optics Star-71

목표

  • 안전하게 별 보기
  • 딥스카이 아무거나 촬영

결과

  • 사진촬영 : 안개때문에 거의 불가능
  • M31 : Light 2장 건짐

[플라네타리움 구현기] 5. 다듬기

목차

핵심 기능은 다 구현이 되었기 때문에, 부가적인 요소를 생각해봅시다.

별 겉보기등급 반영

여러가지 함수를 테스트해봤지만 1차식을 사용했을 때 가장 그럴싸한 결과가 나오는 것을 확인할 수 있었습니다.

5등급정도의 별이 1px정도의 크기를 가지고, 0등급정도의 별이 7px정도의 크기를 가지게 만들어줍시다. 절대적인 공식은 없고, 보기에 적절하게 조절된 것 같을때가지 변수를 조절해주면 됩니다.

1
2
// brightness : mag -> size
const brightness = mag => Math.min(6.0, (-11/9) * mag + (21/3));;

[플라네타리움 구현기] 4. 투영 구현

목차

지금까지 한 일들은 다음과 같습니다.

이제는 별의 (방위각, 고도)값을 이용하여 브라우저에서 표시될 위치를 계산해야합니다.

투영(Projection)

모니터는 직사각형이고 천구는 반구의 형태입니다. 그렇기 때문에 반구를 평면에 투영하는 과정이 필요합니다. 이 때, 투영을 어떤 식으로 하냐에 따라서 실제 투영된 평면에 맺힌 상이 다릅니다. 다양한 투영방식이 있고, 그에 따른 다양한 왜곡이 생겨납니다.

이 글에서는 Stereographic Projection과 Cylindrical Projection을 활용합니다.

[플라네타리움 구현기] 3. 좌표계 변환

목차

지금까지 한 일들은 다음과 같습니다.

이제 이번 챕터에서는 핵심 로직중 하나인 좌표계 변환을 구현합니다.

코드를 설명하기 전에 간단하게 좌표계에 관한 내용을 다루고 갑시다.

[플라네타리움 구현기] 2. 스켈레톤 구현

목차

지난챕터에는 별들의 좌표를 얻기위해 HYG database에서 필요한 정보만 추출했습니다.

이번 챕터에서는 브라우저에서 사용될 코드를 작성합니다.

단순한 플라네타리움의 구현이 목표이기 때문에, 프론트(HTML, CSS, JS) 코드는 최소한으로 간단하게만 구성합니다.

이번 챕터에서 프론트에서 구현해야 하는 로직은 다음과 같습니다.

  • json 파일 로드
  • json에 들어있는 좌표만큼 element(<star>라는 태그이름을 쓰겠습니다) 생성
  • 좌표값을 이용하여 window에 element 배치

참고로, 별마다 HTML element를 생성한다면 성능에 큰 문제가 있을 가능성이 높습니다. 하지만 제대로 표현되는 것을 확인하는데에는 문제가 없으니 이대로 진행한 후 성능개선이 필요한 경우 해당 부분을 교체하면 됩니다.

[플라네타리움 구현기] #1. HYG Database 처리

목차

HYG 데이터베이스

밤하늘의 모든 별의 위치를 한번에 표현할 수 있는 수식은 사실상 없습니다. 즉, 밤하늘에 있는 별들의 위치는 랜덤에 가깝습니다. 따라서 밤하늘의 별들의 위치를 직접 측정한 정보(혹은 데이터베이스)가 필요합니다.

우리가 필요한 것들은 구글링 해보면 보통 나옵니다. 별의 위치를 저장한 데이터베이스중 아무거나 써도 상관없지만, 이 글에서는 HYG-database를 이용합니다.

이 데이터베이스를 꼭 써야하는 이유는 없습니다. 마음에 드는 데이터베이스를 사용하면 됩니다.