_empty_ 2019. 7. 17. 11:28

4차인재 양성사업

과학기술 빅데이터 분석가 과정 

한국천문연구원 최성환

 

 

리스트 : 같은 타입의 데이터를 늘어놓는것

튜플 : 타입이 다른 데이터여도 하나의 셋으로 묶어놓는것

 

 def 로 함수 지정 : 컴퓨터에 이런 함수가 있다는걸 알려줌. 메모리에 올려만 두고 실행되는게 아니다. class도 마찬가지.

나중에 함수를 call하는 부분에서야 실행이 되는 것.

순차적으로 코딩이 된다는것만 생각하다보니 실행이 되는 것과 메모리에 올려만 두는 것이 헷갈린다.

이걸 잘 이해하기 위해선 object의 개념을 잘 알아두어야 한다.

 

공부가 하고 싶다면 연락을 해라.

의지만 있다면 어디에든 공부할 곳은 있는데, 강의 수준으로 배우는걸론 택도 없다.

더 깊이 공부를 해야 한다.

 

Class 안에 init이 뭐라고..?

저 안에 이제 self는 한번 꼭 넣어줘야한다고 하고

그 밑에 self.~~한 여러가지들로 일단 다 초기화를 하는거라는데..

 

 


일을 할 때 현황을 공유하는 건 중요하다.

아시안들이 shy하다는 말을 듣는게, 일을 진행할 때 당연히 본인이 맡은건 본인이 해야 하고

확실한 생각이나 해결책을 갖고 이야기(보고)를 해야한다고 생각을 하는데

그렇게 말을 아끼게 되면 나중에 결과물을 낸다고 냈는데 잘못된 방향이거나,

사업간의 거래에 간해서는 준 업체가 원하는 방향이 아닌 엉뚱한 것을 만들어 오는 일도 생기는데

그렇게되면 남은 기한도 없는데 그걸 뜯어고치느라 일이 더 커져버린다.

 

"지금 일을 이러이렇게 하고 있고 이런 문제가 있는데, 내 생각엔 이렇게 진행하면 고쳐질 것 같다."

이정도로만 말해도 충분하다. (NASA의 중국인 여성 대가분 말씀. 허블 망원경 제작 당시부터 일하신 분이라 한다 멋지다 ㅠ)

 

일을 하다 문제가 생기는 건 당연하고, 같이 일을 진행하며 대화가 이루어지는 것도 당연하다.


self.변수명 : member에 있는 변수? 만든 함수 내에서만 만들려고 헷갈리지 않게 self.으로 지정한것.

다른 변수와 이름이 겹칠 수도 있으니까 이 안에서만 사용되는 변수라고 구분지어 주는 것이라고 함.

 

a = 0

for()

    a = 10

print(a)

 

-> 파이썬에서는 a=0을 지정하지 않아도 알아서 10으로 프린트 된다. 다른 언어 논리에서는 용납이 안되는 부분.

-> a = 0으로 초기화해서 변수 지정하고 들어가는 습관이 중요하다.

 

 

data로 불러온 데이터와 직접 만든 리스트의 출력 모양이 다른 이유

앞서 설명했던 np.array와 python list의 차이이다.

 

 

 

새로운 fits의 data를 불러와서 display하고, 이미지가 어두워 logscale을 취해주기로 한다.

바로 np.log10을 취하면 (math.log10은 1차원 array에만 적용이 된다는 에러가 뜨므로 np.log를 사용해준다)

원본 데이터에 negative value가 있어 log10에 오류가 난다.

log10 error solution

이를 해결하기 위해 구글링하여 np.where를 사용해서 fits.data 중 음수인 값을 보정해주었다.

처음에 logdata = np.where(fits.data<0,0, 0.0, fits.data) 를 입력해

fits.data에서 0.0보다 작은 값 즉 음수를 0.0으로 보정해 주었는데 여전히 같은 에러가 발생하여(0.0도 허용되지 않으므로)

0.5보다 작은 값을 0.5로 강제로 바꿔주기로 했다 (아래 그림) 

왼쪽 : fits.data 원본 출력 / 오른쪽 : np.where로 최솟값을 보정해준 결과

처음에 0.1로 하고 또 나는 0.5로 했으나, 이미지가 여전히 너무 밝게 나와

강사님의 원본 코드대로 1로 보정하여 진행하기로 했다.

그러니 처음엔 Mission2에 보이던것처럼 어둡게 나왔던 것이 아래 그림처럼 밝게 나온다.

 

pickle파일을 다운받아 colormap을 적용하면 아래 오른쪽처럼 컬러입혀 출력이 가능하다.

pickle로 load하여 변수를 저장해주고, 그 변수로 cmap을 변형해주면 된다.

 

pickle패키지를 사용해 주는 이유를 제대로 이해 못하고 넘어갔다..

# # df = pickle.save("ss") 이렇게 하면 저장이 됨. 디버깅 작업
# # 여기서는 칼라맵을 호환되게 미리 만들어둔 데이터셋임.

검색해보기로는 피클 모듈의 pickle.load는 바이너리파일은 writelines와 readlines 메소드를 사용할 수 없기 때문에

텍스트파일처럼 라인별로 읽을 수 있고 한꺼번에 처리가 가능하게 하고, pickle로 출력해내려면 pickle.dump로 입력해야 한다고 나온다.

 

오른쪽은 pickle파일을 다시 다운받아 colormap을 적용하면 아래처럼 컬러입혀 출력이 가능하다.

pickle로 load하여 변수를 저장해주고, 그 변수로 cmap을 변형해주면 된다.

출력하고 보니 위 gray일때부터 태양 주변 빛이 너무 넓게 밝게 다 보이는 것 같아서 원본 코드를 보고

im 옵션에 vmin = 0.8로 조절해주니 밝기가 내려갔다. 그런데 나만 좀 밝게 나온 것 같은데 그건 왜인지 모르겠다.

 

pickle패키지를 사용해 주는 이유를 제대로 이해 못하고 넘어갔다..

검색해보기로는 피클 모듈의 pickle.load는 바이너리파일은 writelines와 readlines 메소드를 사용할 수 없기 때문에

텍스트파일처럼 라인별로 읽을 수 있고 한꺼번에 처리가 가능하게 하고, pickle로 출력해내려면 pickle.dump로 입력해야 한다고 나온다.

다운받은 sdoaia171.pickle은 컬ㄹㄹ

 

왼쪽 이미지에 im 옵션으로 vmin = 0.8 추가하여 다시 출력한 것이 오른쪽

 

fits.data로 3d 그래프 그리기
코드, x, xgrid, ygrid 출력해본 것

xgrid와 ygrid가 각각 매칭되어서

0,0    1,0    2,0    3,0...

0,1     1,1     2,1     3,1 ....

에 각각 값을 찍어서 데이터를 출력해낸다...(?)

 

fits_test2.py
0.00MB