Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[pycon korea 2018] 드론 및 인공위성 영상을 이용한 태양광발전소 입지분석

615 views

Published on

태양광 발전소를 설치하는데 있어, 발전량과 효율에 매우 큰 영향을 미치는 음영을 확인하는 것은 매우 중요합니다. 태양광 모듈에 그늘이 지면 언뜻 보기에는 그 모듈에만 발전이 안되는 것으로 생각할 수 있지만, 실제로는 모듈이 연결되어 있는 태양광시스템(어레이) 전반적으로 영향을 미칩니다. 즉 모퉁이 한 쪽이 나무나 주변 건물 등으로 그늘이 지기 시작했다면 전체 시스템이 그 영향을 받아 다 같이 효율이 떨어지고 발전량이 떨어집니다.

음영은 어떻게 확인 할 수 있을까요? 직접 눈으로 살펴보고 확인 하는 방법이 있습니다. 해가 뜰 때, 질 때 직접 눈으로 확인하거나 사진 또는 영상으로 남겨서 볼 수 있습니다. 하지만 지형이나 건물에 따라 판단하기 힘든 곳도 있고, 직접 살펴보지 못하는 부분도 있습니다.

위와 같은 경우에 활용 할 수 있는 드론 및 인공위성영상을 이용한 음영 분석방법에 대해 얘기해보려고 합니다.

분석 방법은 크게 3가지 단계로 나눌 수 있습니다.

1. 드론 및 위성영상에서 point cloud 또는 height map 생성
2. point cloud 또는 height map에서 3d mesh를 생성하여 3d 렌더링
3. 시뮬레이션된 태양의 고도를 바탕으로 계절별 시간대별로 음영 분석

파이썬 오픈소스 라이브러리를 활용하여 위의 각 3단계를 진행하게 됩니다.

이번 파이콘 2018 슬로건(다양성에 빠지다)에 맞는 태양광이라는 다소 생소 할 수 있는 분야에 파이썬을 활용한 경험을 공유하려고 합니다.

감사합니다.

Published in: Software
  • Be the first to comment

[pycon korea 2018] 드론 및 인공위성 영상을 이용한 태양광발전소 입지분석

  1. 1. 드론 및 인공위성 영상을 이용한 태양광발전소 입지분석 최재현
  2. 2. INTRODUCTION ► 네오위즈게임즈 ► 씨웨이브소프트 ► 해줌 ► 클라이언트 게임 프로그래머(8년) ► C++, C#(UNITY3D) ► 웹개발(2년) ► Python(django), html, css, javascript 발표자 소개 INTRO
  3. 3. AGENDA ► 우리 회사에서 하는 일? ► 음영 분석 접근 방법 ► 프로토 타이핑 ► PANDA3D를 이용한 인공위성 및 드론 이미지 음영 분석 ► UNITY3D를 이용한 음영 데이터 추출 ► 데이터 검증 ► PANDA3D와 UNITY3D 비교 목차 INTRO
  4. 4. ABOUT COMPANY ► 데이터를 기반으로 기상예측 및 태양광 발전량 예측 ► 파이콘 2017 ► 구름이 하늘의 일이라면: Python과 TensorFlow를 이용한 기상예측 ► 태양광 발전소 이상 감지 ► 태양광 발전소 수익성 예측 우리 회사에서 하는 일? INTRO 음영이 없는 환경의 발전량 예측 기존 실제 환경은 여러가지 음영이 발 생 나무, 산, 주변건물 문제 음영 분석으로 발전량 예측 고도화 해결
  5. 5. SHADOW ANALYSIS 음영 분석 접근 방법 드론 및 인공위성영상에서 Point Cloud 또는 Height Map 생성01 Point Cloud 또는 Height Map에서 3D Mesh 생성, 렌더링02 시뮬레이션된 태양의 위치를 바탕으로 계절별 시간대별 음영 분석03 INTRO
  6. 6. PROTOTYPING
  7. 7. POINT CLOUD ► 3차원 좌표를 가지고 있는 점들 로 불규칙하게 구성된 자료 ► A point cloud image of a torus 드론영상에서 Point cloud, mesh 생 성 PROTOTYPING
  8. 8. PIX4D ► 드론사진으로 3d 데이터 생 성 ► https://pix4d.com 드론영상에서 Point cloud, mesh 생 성 PROTOTYPING
  9. 9. PIX4D 드론영상에서 Point cloud, mesh 생 성 PROTOTYPING 경기도 안성 103장의 이미지 사진을 찍은 위치 포인트
  10. 10. PIX4D 드론영상에서 Point cloud, mesh 생 성 PROTOTYPING ► Point Cloud 생성
  11. 11. PIX4D ► 3D mesh 생성 드론영상에서 Point cloud, mesh 생 성 PROTOTYPING
  12. 12. UNITY 3D ► 멀티플랫폼 3d 게임 엔진 ► https://unity3d.com/kr 3D MESH 렌더링 PROTOTYPING
  13. 13. UNITY 3D PROTOTYPING 3D MESH 렌더링
  14. 14. UNITY 3D ► Light 세팅 3D MESH 렌더링 PROTOTYPING
  15. 15. IMPLEMENTATION WITH PYTHON LIBRARIES파이썬 라이브러리를 사용하여 구현
  16. 16. COMPUTER VISION LIBRARIES ► Automatic 3D Reconstruction from Multi-Date Satellite Images ► https://gfacciol.github.io/multi-date-stereo/ ► https://github.com/MISS3D/s2p ► 위성 이미지 3d 합성 ► OpenDroneMap ► https://github.com/OpenDroneMap/OpenDroneMap/ ► 드론 이미지 3d 합성 드론 및 인공위성영상 합성 IMPLEMENTATION WITH PYTHON LIBRARIES
  17. 17. HEIGHT MAP 지형의 높이를 그레이스케일로 표현한 이미지 ► s2p 라이브러리를 사용 ► 위성 영상에서 height map 추출 드론 및 인공위성영상 합성 IMPLEMENTATION WITH PYTHON LIBRARIES
  18. 18. HEIGHT MAP Pleiades tri-stereo + S2P (Melbourne) 드론 및 인공위성영상 합성 IMPLEMENTATION WITH PYTHON LIBRARIES 위성사진 Height Map
  19. 19. HEIGHT MAP Landsat 8 + OpenCV StereoBM (Berlin) 드론 및 인공위성영상 합성 IMPLEMENTATION WITH PYTHON LIBRARIES Height Map 위성영상 1 위성영상 2
  20. 20. HEIGHT MAP Sentinel + OpenCV 드론 및 인공위성영상 합성 IMPLEMENTATION WITH PYTHON LIBRARIES 원본영상 해상도 4배 개선 영상 Height Map
  21. 21. GRAPHIC LIBRARIES Pygame ► https://www.pygame.org/ Panda3d ► https://www.panda3d.org/ Pyglet ► https://bitbucket.org/pyglet/pyglet/wiki/Home Renpy ► https://www.renpy.org/ Blender ► https://www.blender.org/ 3D MESH 렌더링 IMPLEMENTATION WITH PYTHON LIBRARIES
  22. 22. PANDA3D Panda3d ► Python 및 c++ 게임엔진 ► 디즈니에서 개발 ► 2002년 출시 ► 디즈니와 카네기멜론대학에서 공동 관리 3D MESH 렌더링 IMPLEMENTATION WITH PYTHON LIBRARIES
  23. 23. PANDA3D 3D MESH 렌더링 IMPLEMENTATION WITH PYTHON LIBRARIES
  24. 24. PANDA3D ► Height map 지형 생성을 위한 클래스 - HeightfiledTesselator - GeoMipTerrain 3D MESH 렌더링 IMPLEMENTATION WITH PYTHON LIBRARIES
  25. 25. PANDA3D 3D MESH 렌더링 IMPLEMENTATION WITH PYTHON LIBRARIES ► Lights ► Directional Lights ► Spotlights ► Point Lights ► Ambient Lights
  26. 26. PANDA3D ► Directional Light 세팅 시 주의할 점 ► 기본 설정 시 그림자가 생기지 않을 수 있음 3D MESH 렌더링 IMPLEMENTATION WITH PYTHON LIBRARIES
  27. 27. PANDA3D ► DirectionalLight 세팅 시 주의할 점 ► showFrustum() 함수로 확인 3D MESH 렌더링 IMPLEMENTATION WITH PYTHON LIBRARIES
  28. 28. PANDA3D ► DirectionalLight 세팅 시 주의할 점 ► setFilmSize(width, height) ► setNearFar(nearDistance, farDistance) 3D MESH 렌더링 IMPLEMENTATION WITH PYTHON LIBRARIES
  29. 29. PANDA3D ► .fbx 파일 load ► Convert to .egg 3D MESH 렌더링 IMPLEMENTATION WITH PYTHON LIBRARIES
  30. 30. AZIMUTH AND ALTITUDE ► 태양의 방위각 ► 북점(또는 남점)에서 시계 방향으로 지평선을 따라 천체를 지나는 수직권까지 측정한 각도로 0°~ 360°로 표시한다. ► sin 𝛼 = cos 𝛿×sin 𝑡 cos ℎ ► 태양의 고도 ► 지평면에서 수직권을 따라 천체까지 잰 각을 말하며 -90°~90°의 값을 갖는다 ► sinℎ = sin 𝛿 × sin 𝜙 + cos𝛿 × cos𝜙 × cos𝑡 ► (𝛿= 적위, 𝜙= 위도, 𝑡 = 시간, ℎ = 태양 고도) 태양 시뮬레이션 IMPLEMENTATION WITH PYTHON LIBRARIES
  31. 31. AZIMUTH AND ALTITUDE ► 태양의 방위각 계산 태양 시뮬레이션 IMPLEMENTATION WITH PYTHON LIBRARIES
  32. 32. AZIMUTH AND ALTITUDE ► 태양의 고도 계산 태양 시뮬레이션 IMPLEMENTATION WITH PYTHON LIBRARIES
  33. 33. PANDA3D 음영 시뮬레이션 ► Light rotation ► setHpr(Yaw, Pitch, Roll) IMPLEMENTATION WITH PYTHON LIBRARIES
  34. 34. PANDA3D 음영 시뮬레이션 IMPLEMENTATION WITH PYTHON LIBRARIES 2017-01-01 10:00 2017-01-01 12:00
  35. 35. PANDA3D 음영 시뮬레이션 IMPLEMENTATION WITH PYTHON LIBRARIES 16시 2017-01-01 14:00 2017-01-01 16:00
  36. 36. PANDA3D 음영 시뮬레이션 IMPLEMENTATION WITH PYTHON LIBRARIES 2017-01-01 16:00
  37. 37. SUN PATH SIMULATION 음영 판단 방법 그림자가 생기는 원리 음영 판단 방법 DATA EXTRACTION AND COMPUTATION
  38. 38. MODELING 베란다 태양광 예시 DATA EXTRACTION AND COMPUTATION
  39. 39. SOLAR PANEL 베란다 태양광 예시 ► 태양광 패널은 6*10개의 셀 로 구성 ► 정밀도를 높이기 위해 *3, 총 540개의 포인트 설정 (한화 큐셀 Q.PEAK-G4.1) DATA EXTRACTION AND COMPUTATION
  40. 40. SIMULATION 베란다 태양광 예시 DATA EXTRACTION AND COMPUTATION
  41. 41. DATA EXTRACTION ► 가상으로 설치된 태양광 모듈에 대해 다음과 Boolean array를 만듦 ► 0: 빛이 도달 함 ► 1: 빛이 도달 하지 못함 베란다 태양광 예시 DATA EXTRACTION AND COMPUTATION 2017-03-23 16:00:00 2017-03-23 17:00:00 2017-03-23 18:00:00
  42. 42. DATA VALIDATION데이터 검증
  43. 43. MODELING ► 데이터 제공 ► 도봉구청 협조 ► 공간정보 오픈플랫폼 지도서비스 지도를 바탕으로 모델링 ► http://map.vworld.kr/ 벽면 태양광 예시 DATA VALIDATION
  44. 44. SIMULATION 벽면 태양광 예시 DATA VALIDATION 2017-12-13 14:00 2017-12-13 16:00
  45. 45. RESULT 벽면 태양광 예시 DATA VALIDATION 16 12 8 4 0 발전량 [kWh] 시간7 8 9 10 11 12 13 14 15 16 17 18 2016년 03월 01일 실측발전량 음영 보정 후 음영 보정 전 16 12 8 4 0 발전량 [kWh] 시간7 8 9 10 11 12 13 14 15 16 17 18 2016년 02월 26일 실측발전량 음영 보정 후 음영 보정 전
  46. 46. RESULT 벽면 태양광 예시 DATA VALIDATION 2000 1500 1000 0 발전량 [kWh] 월01 03 04 05 06 07 08 09 10 월별발전량(2014~2016평균) 02 11 12 500 실측발전량 예측 발전량 (음영손실 보정 전) 예측 발전량 (음영손실 보정 후)
  47. 47. RESULT 벽면 태양광 예시 DATA VALIDATION 12 9 6 0 NMAE(%) 월01 03 04 05 06 07 08 09 10 월별NMAE(2014~2016평균) 02 11 12 3 15 음영손실 보정 전 음영손실 보정 후
  48. 48. CONCLUSIO N ► 장점 ► Panda3d의 경우 예제와 문서화가 잘 되어 있어 쉽게 시작 할 수가 있음 ► 간단한 코드로, 모델, 애니메이션, 지형, 조명 등을 바로 화면에 렌더링 할 수 있음 ► 다른 엔진에 있는 기능들은 대부분 제공. ► 단점 ► 유니티와 비교 했을 경우, GUI 기반이 아니기 때문에 사용성에서 부족할 수 있음 ► 사용하는 개발자가 적음 ► 큰 프로젝트에는 유니티를 사용 하는 것이 훨씬 효율 적일 수도 있다. ► 간단히 3d 모델링을 출력하는 경우나 프로토타이핑의 경우에 panda3d로 시작 해도 좋을 것 같음 마지막으로..
  49. 49. THANK YOU! 최재현 jh.choi@haezoom.com www.haezoom.com story.haezoom.com 디자인: 박수진

×