# data[].attributes.body
padlet.com/sciteachers/earthscience

# data[].attributes.body
아래 탭의 목록에서

첫번째 탭은 실습용, 두번째 탭은 정답용

# data[].attributes.attachment_link.title
생성형 AI와 Python으로 구현하는 도플러 효과 (학생용)

# data[].attributes.body
The rotating sky 를 주로 활용!

# data[].attributes.attachment_link.readable_text
The Nebraska Astronomy Applet Project provides online laboratories targeting the undergraduate introductory astronomy audience. Each lab consists of background materials and one or more simulators that students use as they work through a student guide. Pretests and posttests can be used to gauge student learning.

NAAP materials are designed to be flexible to accommodate a variety of needs. Student guides are provided in MS Word format (in addition to PDF format) so that they can be edited if necessary. Demonstration guides and in-class worksheets are provided for some labs, helping instructors make use of NAAP simulations even if they don't assign the accompanying lab.

Please visit the instructor information page for more details on using the NAAP labs, or the lab descriptions page for a summary of the NAAP labs. You may also want to visit the simulations list page, which includes animations from the ClassAction project as well.

# data[].attributes.attachment_link.description
Online labs and simulations for introductory astronomy.

# data[].attributes.body
구글 창에서 '구글코랩'을 검색해주시고,

오른쪽 상단 위에 있는 'New Notebook'을 눌러 새로운 창을 열어주세요😎

# data[].attributes.headline
'학년별_성적' 구글 드라이브 저장

# data[].attributes.subject
'학년별_성적' 구글 드라이브 저장

# data[].attributes.body
😎엑셀파일을 업로드 했는데

엑셀 형태가 아닌 스프레드 시트의 형식으로 변환되어 업로드가 되었다면!

다시 파일 삭제 - 왼쪽 상단 위 톱니바퀴 (설정) 클릭 - '업로드' 영역 - '업로드 형식을 Google Docs 편집기 형식으로 변환' 체크해제' - 다시 파일 업로드

# data[].attributes.headline
연속 스펙트럼 이미지 파일 구글 드라이브 저장

# data[].attributes.subject
연속 스펙트럼 이미지 파일 구글 드라이브 저장

# data[].attributes.body
구글 드라이브에 이미지를 다운받아 업로드해주세요.

😎위치는 경로를 파악하기 쉽도록,

엑셀파일과 함께

구글 드라이브 - Colab Notebooks

에 넣어주세요.

# data[].attributes.body
😎파일을 다운받으신 후

구글 코랩에서

파일 - Drive의 새노트북을 클릭하여 새창 열기 - Ctrl+O - 업로드 - 둘러보기 - 다운로드 - 파일 선택 후 열기

# data[].attributes.body
😎파일을 다운받으신 후

구글 코랩에서

파일 - Drive의 새노트북을 클릭하여 새창 열기 - Ctrl+O - 업로드 - 둘러보기 - 다운로드 - 파일 선택 후 열기

# data[].attributes.attachment_link.description
Use ChatGPT to answer questions, write, create images, complete work, and code-all in one place. Get started for free or download the app.

# data[].attributes.headline
외계 행성 시스템 구현을 위한 chatGPT 명령문

# data[].attributes.subject
외계 행성 시스템 구현을 위한 chatGPT 명령문

# data[].attributes.body
1. 항성 질량을 M, 행성 질량을 m, 공통질량중심으로부터 항성까지의 거리를 R, 행성까지의 거리를 m으로 설정.

항성과 별이 공통질량중심을 중심으로 원운동한다고 한다면, 이때 각 변수의 관계는 MR=mr이야.

초기 세팅값은 M=300, m=30, r=300, R=30으로 할게. 행성의 궤도는 r=300으로 고정시키고 M, m, R 만 변화될거야.(편의상 행성 궤도는 고정)

2. 별과 행성의 공전주기는 P로 동일하고 서로 공통질량중심을 중심으로 마주보고 공전할거야.

항성이 원운동할때의 속력은 2πR/P, 행성의 원운동 속력은 2πr/P라고 해. 초기 세팅값은 P=100으로 할게.

3. 결론적으로, 별과 행성의 공통질량중심을 원점으로 하는 좌표계에서 두 천체의 공전궤도를 그리도록 애니메이션을 만들거야. 여기서 별과 행성의 좌표를 시간에 따른 회전각도의 변화를 이용하여 표시하면 좋아. 다음과 같아. 행성과 항성은 계속 마주보며 돌아야하니 행성의 각도에 180도(파이)를 더해서 나타낼게. t는 시간이야. 따라서 시간이 흐를수 있도록 play, pause 버튼이나 속도조절 버튼등이 있어야겠지

항성:

X좌표=R*cos(2π*t/P+π),

Y좌표=R*sin(2π*t/P+π),

행성:

x좌표=r*cos(2π*t/P),

y좌표=r*sin(2π*t/P),

4. 시간을 흐르게 하면 별과 행성이 회전하는 운동이 나타나야해

5. 그리고 질량값인 M과 m을 변화시키면 궤도 반지름인 R이 1번의 관계식에 따라 함께 변하는데

질량값을 입력하는 칸이 함께 있어야겠지. 그리고 질량값을 입력하고 엔터치면 바로 변경된 공전궤도 반지름이 반영되어야해. 이때 축이나 좌표들은 그대로고 점선으로 된 궤도만 변경되어야해.

애니메이션이 전체가 사라졌다가 새로만들어지는 것이나, 질량값 업데이트할때마다 애니메이션이 새로 생성되어서 무한생성되는 일은 없었야겠지. 하나의 애니메이션 안에서 천체의 질량에 변화를 줬을 때 점선으로 된 공전궤도의 변화만을 보고싶은거야.

6. 가끔 애니메이션과 그래프 2개가 나타나는데, 그래프는 필요없고 애니메이션만 있으면 돼.

7. 별의 크기는 30, 행성의 크기는 15 / 별의 색 yellow, 행성의 색 green, / 별 궤도의 색 blue, 행성 궤도의 색 orange 로 설정할게.

8. 그리고 별과 행성의 시간에 따른 회전운동이 끊기지 않고 부드럽게 이어지도록 설정해줘.

# data[].attributes.headline
별의 시선속도 그래프를 추가하기 위한 chatGPT 명령문

# data[].attributes.subject
별의 시선속도 그래프를 추가하기 위한 chatGPT 명령문

# data[].attributes.body
위의 코드에다가 항성의 시선속도 변화를 나타내는 그래프를 추가하고싶어. 항성의 시선속도를 Vr 이라고 할게.

이때 Vr = (2πR/P)*sin[(2π*t/P)+π)] 와 같아.

항성이 시간의 흐름에 따라 공전할 때 시선속도를 나타내는 그래프도 그려줘.

가로축은 시간, 세로축은 시선속도값이야.

# data[].attributes.headline
연속스펙트럼에서의 흡수선 이동을 보기 위한 chatGPT 명령문

# data[].attributes.subject
연속스펙트럼에서의 흡수선 이동을 보기 위한 chatGPT 명령문

# data[].attributes.body
여기에 별빛의 스펙트럼 그래프를 추가하고싶어.

가로로 긴 직사각형 모양의 그래프를 추가해주고, 그 직사각형의 중앙에 얇은 검은색 세로 직선을 하나 넣어줘. 그 상태의 파장값을 0이라고 할게. 직사각형 모양의 그래프에서 가로는 파장을 의미하고 가운데를 기준으로 오른쪽으로 갈수록 파장값은 증가하고 왼쪽으로 갈수록 파장은 짧아져.

여기서 시간의 흐름에 따라 별이 공전할 때 공전궤도 애니메이션에서 (400,0)에 위치한 관측자로부터 멀어질 때 적색편이(검은색 얇은 세로줄인 흡수선의 위치가 오른쪽, 파장이 증가하는 방향으로 이동), 관측자와 별과 행성이 일직선일 때는 다시 원점, 관측자를 향해 다가올 때는 청색편이(파장 감소, 왼쪽으로 이동)이 나타나는 것을 함께 보고싶어. 추가해줘.

# data[].attributes.headline
공전궤도, 시선속도 그래프, 흡수선의 이동을 한꺼번에 보기 위한 chatGPT 명령문

# data[].attributes.subject
공전궤도, 시선속도 그래프, 흡수선의 이동을 한꺼번에 보기 위한 chatGPT 명령문

# data[].attributes.body
두 코드를 모두 복사하여 붙여넣은 뒤, 이 두코드를 하나로 합쳐서 보고싶어.

각각의 코드는 최대한 수정하지 말고, 두 코드를 하나로 합쳐서 play 버튼 누르면 동시에 구현될 수 있도록 해줘.

# data[].attributes.headline
[2단계] 외계 행성 시스템 구현

# data[].attributes.subject
[2단계] 외계 행성 시스템 구현

# data[].attributes.body
#상수 설정

P = 100

R = ( r * m ) / M

theta_star = 2 * np.pi * t / P + np.pi

theta_planet = 2 * np.pi * t / P

#theta 값을 정의해준 뒤, 별과 행성의 좌표를 정의한다.

X_star = R * np.cos(theta_star)

Y_star = R * np.sin(theta_star)

x_planet = r * np.cos(theta_planet)

y_planet = r * np.sin(theta_planet)

#애니메이션 생성 함수(좌표 설정 포함), 그래프의 여백을 늘리고 싶으면 숫자를 크게 넣어도 됩니다!

ax.set_xlimit(-450, 450)

ax.set_ylimit(-450, 450)

#궤도와 점 초기화 설정, 관측자의 위치를와 크기 변경 가능합니다!

observer_point = ax.plot([400], [0], 'o', markersize=15, color='grey', label="observer", zorder=15)

# data[].attributes.headline
[3단계] 별의 시선속도 그래프 추가

# data[].attributes.subject
[3단계] 별의 시선속도 그래프 추가

# data[].attributes.body
# Function to calculate positions and radial velocity

Vr = (2 * np.pi * R / P) * np.sin(theta_star)

# Second subplot: Radial velocity

ax2.set_xlabel("Time")

ax2.set_ylabel("Radial Velocity (Vr)")

ax2.set_title("Radial Velocity Curve")

# data[].attributes.headline
[4단계] 연속 스펙트럼에서의 흡수선 이동(적색편이, 청색편이)

# data[].attributes.subject
[4단계] 연속 스펙트럼에서의 흡수선 이동(적색편이, 청색편이)

# data[].attributes.body
import matplotlib.image as mpimg #이미지 읽기 및 처리

#스펙트럼 이미지 경로 설정 (드라이브에 업로드한 이미지 경로)

spectrum_image = mpimg.imread('/content/drive/My Drive/Colab Notebooks/image.png')

(제 경로는 이와 같습니다.)

# data[].attributes.headline
[5단계] 공전궤도, 시선속도 그래프, 흡수선의 이동을 한꺼번에 나타내기

# data[].attributes.subject
[5단계] 공전궤도, 시선속도 그래프, 흡수선의 이동을 한꺼번에 나타내기

# data[].attributes.body
정답용 colab note에 있는 마지막 셀을 복사하여 붙여넣기한 뒤 셀을 실행해보세요!

# data[].attributes.headline
자신만의 내진설계 구조 탐구하기!

# data[].attributes.subject
자신만의 내진설계 구조 탐구하기!

# data[].attributes.body
✅ 아래의 각 단계별로 사탕이 낙하하는 시간을 측정해봅시다!

✅ 주의할 점, 매 탐구별 사탕을 올려두는 위치를 맨 꼭대기층의 동일한 지점으로 정해두고 측정할 것!

1. 기본 모형

2. 스프링

3. 무게추

4. 지지대

😎 지지대 틀을 활용하여 나만의 독특한 내진설계 구조를 구현하고 촬영하여 올려보자!

5. 스프링+무게추+지지대

# data[].attributes.headline
자신만의 지진파와 지진 발생 알림 코드 만들기

# data[].attributes.subject
자신만의 지진파와 지진 발생 알림 코드 만들기

# data[].attributes.body
✅ 마이루프 코딩 보드를 활용하여 나만의 진동을 만들어 봅시다.

✅ 이때 지진파가 발생함과 동시에 만들 수 있는 알람을 다양하게 표현해보자!

1. 음표 코딩

2. 음성 코딩

3. 도트 매트리스 코딩

✅ 독특한 지진파를 만들고 이를 캡쳐하여 아래 댓글로 올려주세요!

✅ 기본형에서, 나만의 지진파를 발생시켰을 때 건물의 움직임을 촬영하여