Translate

2018년 6월 30일 토요일

태양계 이야기 696 - 충돌 후 소행성을 탐사할 유럽 우주국의 헤라 미션


(Hera measures Didymoon's size, shape and mass. Credit: European Space Agency)

(Hera uses infrared to scan impact crater. Credit: European Space Agency)

(Testing deflection. Credit: European Space Agency)


앞서 소개드린 것처럼 유럽 우주국과 미국 나사는 쌍성계 소행성인 디디모스 (Didymos)와 그 위성인 디디문 (Didymoon)에 작은 충돌체를 명중시켜 그 궤도를 약간 변경시킬 계획입니다. 이는 안전하게 지구 주변 소행성의 공전 궤도를 변경시켜 앞으로 지구에 위협이 될 수 있는 소행성의 공전 궤도를 인위적으로 변경시킬 수 있을지 검증하는 무대가 될 예정입니다. 


 2022년 나사의 DART (Double Asteroid Redirection Test)가 성공적으로 진행되면 유럽 우주국은 2026년 디디모스와 디디문에 헤라 (Hera)라는 이름의 탐사선을 보내 최소 11km 떨어진 위치에서 따라가며 그 형태와 궤도를 매우 상세하게 관측할 예정입니다. 디디모스가 지름 780m, 디디문이 지름 170m에 불과하기 때문에 사실상 중력이 매우 약해 주변을 안정적으로 공전하기는 어렵습니다. 과거 로제타 탐사선이 공전한 P67 혜성보다 훨씬 작기 때문에 이는 기술적 도전이 될 것입니다. 


 이미 관측을 진행한 소행성에 다시 탐사선을 보내는 이유는 소행성의 내부를 들여다볼 수 있는 드문 기회이기 때문입니다. DART가 만든 크레이터 안쪽에는 소행성의 내부 구성 물질이 어떤 것인지에 대한 결정적인 증거가 숨어 있습니다. 아마도 꽤 깊은 구덩이가 생길 것으로 예상되는 데 지금까지 관측이 불가능했던 소행성의 내부가 드러날 것으로 기대합니다. 동시에 태양계에 드물지 않은 존재지만, 지금까지 관측이 잘 되지 않은 위성을 지닌 소행성의 구조에 대해서도 많은 것을 알 수 있을 것으로 예상됩니다. 


 유럽 우주국이 목표로 하는 헤라의 관측 해상도는 최대 10cm 정도로 크레이터 내부와 주변을 매우 상세히 파악할 수 있을 것입니다. 물론 가시광 영역은 물론 적외선 등 다양한 파장에서 관측이 이뤄지며 정확한 3차원 지형을 파악하기 위해 레이저 측정도 이뤄질 것입니다. 


 과학자들은 이를 통해서 소행성이 어느 정도 충돌에 견딜 수 있느냐는 매우 중요한 질문에 해답을 얻을 수 있을 것입니다. 여기에 대한 해답을 얻는다면 앞으로 소행성의 궤도를 바꾸기 위해 충돌체를 보낸다면 어느 정도 크기와 속도가 적당한지 알 수 있습니다. 아직 많은 시간이 남았지만, 이 결과는 우리에게 중요한 정보를 제공할 것으로 예상됩니다. 


 참고 





항공기 소음을 최소화한 새로운 항공기 기술



(The ARM flights were flown on NASA’s SubsoniC Research Aircraft Testbed G-III aircraft, or SCRAT, at NASA’s Armstrong Flight Research Center in California. NASA combined three technologies, including Landing Gear Noise Reduction, landing gear cavity treatments, and the Adaptive Compliant Trailing Edge flexible wing flap, to demonstrate a reduction in airframe noise in excess of 70 percent. This may reduce aircraft noise for communities that live near airports.
Credits: NASA/Ken Ulbrich)

(While porous concepts for landing gear fairings have been studied before, NASA’s design was based on extensive computer simulations to produce the maximum amount of noise reduction without the penalty of increasing aerodynamic drag. The landing gear cavity was treated with a series of chevrons near its leading edge, and a net stretched across the opening to alter airflow, aligning it more with the wing.
Credits: NASA/Ken Ulbrich)


 하늘을 나는 대형 여객기는 지구촌 시대에 없어서는 안될 교통수단이지만, 소음이 크다는 문제점도 같이 가지고 있습니다. 특히 소음이 제일 심한 장소는 공항에 가까운 지역입니다. 공항 자체는 반드시 필요하지만, 소음 공해를 최소화할 방법이 필요한 이유입니다. 나사의 연구팀은 항공기의 소음은 줄이고 연비 및 속도를 높이기 위한 여러 가지 연구를 진행 중입니다. 그 가운데 이착륙시 소음을 최대 70%까지 줄일 수 있는 기술이 선보였습니다. 


 지난 5월 나사의 암스트롱 비행 센터에서 진행된 음향 연구 측정 (Acoustic Research Measurement, ARM)에서 나사가 개발한 새로운 플랩(flap) 및 소음 감소 구조는 성공적인 것으로 드러났습니다. 여기에는 소음 감소형 날개 플랩인 ACTE (Adaptive Compliant Trailing Edge)와 다공성 구조를 이용한 랜딩 기어 소음 감소 기술 (Landing Gear Noise Reduction technology)가 사용되었습니다. 


 항공기 소음은 물론 엔진에서 나오는 소음도 크지만, 날개와 동체 주변의 공기 흐름이 만드는 소음도 매우 큽니다. 특히 이착륙시 랜딩 기어를 내리고 비행할 때 소음이 매우 클 수밖에 없습니다. 이 소음을 줄이기 위해 랜딩 기어 부분에 새로운 구조물을 설치해 공기의 흐름을 좋게 하거나 작은 구멍 사이로 공기가 지나가게 만들어 소음을 줄이는 것이 연구 개발의 목표입니다. 바퀴 주변을 지나는 공기가 만드는 소음과 랜딩 기어 수납부의 공간이 만드는 소음만 줄여도 상당량의 소음을 줄여 공항 주변 환경을 좋게 만들 수 있습니다. 구체적인 기술적 디테일은 알기 어렵지만, 랜딩 기어 주변에 공기가 들어갈 수 있는 부분을 줄이고 새로운 소재를 사용해 소음을 줄인 것으로 보입니다. 


 최근 항공 여객량이 크게 증가했고 앞으로도 계속해서 증가할 수밖에 없는 상황이라 더 조용하고 친환경적인 항공기 기술 개발의 중요성은 굳이 말할 필요가 없을 것입니다. 다만 연비 개선과 달리 소음 감소는 당장에 수익으로 연결될 수 없는 부분이기 때문에 나사 같은 국가 기관에서 연구를 주도하는 것이 효율적일 것입니다. 우리 나라도 공항 인근 지역은 소음이 적지 않은데 차세대 저소음 항공기 기술이 빨리 상용화되었으면 하는 바램입니다. 


 참고 


네안데르탈인은 생각보다 머리가 좋았다?



(Front and back view of a hunting lesion in a cervical vertebra of an extinct fallow deer, killed by Neandertals 120.000 years ago on a lake shore close to current-day Halle (Germany). Credit: Eduard Pop, MONREPOS Archaeological Research Centre and Museum for Human Behavioural Evolution, Römisch-Germanisches Zentralmuseum, Leibniz-Researchinstitute for Archaeology,)

(Estimated impact angle shown in relation to a standing fallow deer for the hunting lesion observed in the pelvis of an extinct fallow deer, killed by Neandertals 120,000 years ago on a lake shore close to current-day Halle (Germany). Credit: Eduard Pop, MONREPOS Archaeological Research Centre and Museum for Human Behavioural Evolution, Römisch-Germanisches Zentralmuseum, Leibniz-Researchinstitute for Archaeology)



 네안데르탈인은 시대에 따라 그 이미지가 극명하게 달라졌습니다. 초기에는 현생 인류와 비슷한 외형과 특징 때문에 인류의 조상 대접을 받기도 했으나 이후 연구에서 현생 인류가 네안데르탈인과 독립적으로 아프리카에서 기원했다는 증거가 발견되면서 호모 사피엔스의 다소 원시적인 근연종으로 위상이 낮아졌습니다. 여기에 인류보다 지능이 낮다는 증거들이 나오면서 결국 낮은 지능 때문에 추위에 잘 적응된 튼튼한 몸에도 불구하고 멸종했다는 주장도 나왔습니다. 


 하지만 최근 네안데르탈인의 DNA가 아프리카인을 제외한 현생 인류의 여러 집단에서 확인되면서 인류와 네안데르탈인의 이종교배가 사실로 확인되었고 생각보다 머리가 나쁘지 않다는 증거도 나오고 있습니다. 여전히 이들이 사라진 이유는 명확하지는 않지만, 적어도 현생인류와 연관이 없는 호모속의 다른 생물은 아닌 것입니다. 과학자들은 이들의 삶을 이해하기 위해 많은 연구를 진행 중입니다. 


 독일 요하네스 구텐베르크 대학의 연구팀은 독일 할레(Halle)에서 발견된 사슴 화석에서 네안데르탈인이 매우 정교한 방식으로 사냥을 했다는 증거를 발견했습니다. 12만년 전 죽은 이 사슴은 자연사 한 것이 아니라 창에 찔려 죽은 것으로 보이는데, 20년 전 처음 발견되었을 때는 제반 기술의 부족으로 상세한 내용까지 알 수 없었습니다. 


 연구팀은 최근 기술을 동원해 이 사슴 화석의 척추에 남은 구멍을 뚫은 창의 정체를 밝혀냈습니다. 이 구멍은 우리가 원시인에서 흔히 생각하는 날카로운 돌을 나무에 묶은 돌창이 아니라 나무로 만든 창이었습니다. 하지만 중요한 점은 재질보다는 사용법입니다. 연구팀은 화석에 남은 흔적을 토대로 네안데르탈인이 이 나무 창을 던진 것이 아니라 천천히 아래쪽에서 찔러 넣었다는 사실을 확인할 수 있었습니다. (사진) 


 물론 살기 위해 도망치는 사슴을 이런 식으로 공격하기는 어렵습니다. 따라서 가까운 거리에서 기습하거나 혹은 다른 동료가 유인하거나 잡은 사슴에 치명상을 가해 죽인 것으로 파악할 수 있습니다. 둘 다 네안데르탈인이 복잡한 사냥 기술을 지니고 있었음을 시사하는 대목입니다. 최소한 막무가내로 곤봉으로 때려잡거나 한 건 아니라는 이야기죠. 참고로 현생 인류가 아니라 네안데르탈인의 사냥 흔적이라고 확신하는 이유는 12만년 전 유럽에는 현생 인류의 조상이 도착하지 않았기 때문입니다. 물론 도구를 사용하는 인류와 그 근연종 이외에는 창을 사용하는 동물이 없으니 남는 결론은 하나 뿐입니다. 


 네안데르탈인를 둘러싼 여러 가지 궁금증은 아직 쉽게 해결되지 않고 있습니다. 인간보다 도구를 사용하는 능력이 떨어져 효과적으로 사냥하지 못했기 때문에 생존 경쟁에서 밀렸다는 주장도 있었지만, 최근 연구 결과를 보면 네안데르탈인 역시 환경에 잘 적응한 훌륭한 사냥꾼이었음이 확인되고 있습니다. 과연 이들이 사라진 이유가 무엇인지 더 궁금하게 만드는 결과인 것 같습니다. 


  참고 


Sabine Gaudzinski-Windheuser et al. Evidence for close-range hunting by last interglacial Neanderthals, Nature Ecology & Evolution (2018). DOI: 10.1038/s41559-018-0596-1

2018년 6월 29일 금요일

주피터 노트북에 R 커널 설치하기 + 아나콘다 설치



 R과 경쟁 관계에 있는 언어라면 데이터 과학이나 통계 분석, 인공 지능에서는 역시 파이썬입니다. 하지만 파이썬 라이브러리를 R에서 사용하거나 반대로 R에서 개발된 패키지를 파이선에서 사용하는 시도가 활발히 진행 중입니다. 둘 다 편리한 도구이고 개발 환경에 있어 유용한 부분들이 있어 서로간의 환경을 공유하는 것이 유리하기 때문입니다. 


 여기에서는 파이썬의 대표적인 개발 도구인 주피터 노트북에서 R을 사용할 수 있도록 R 커널을 설치하는 방법을 설명합니다. 


 우선 아래 링크에서 파이썬을 설치합니다. 참고로 파이썬 3.6 버전은 꽤 용량이 크고 여기에 R 커널까지 설치하면 용량이 더 커지는데다 딥러닝 관련 패키지를 포함해 기타 패키지와 툴을 자꾸 설치하다보면 용량이 작지 않습니다. 만약 작은 용량의 SSD에 설치하는 경우 주의가 필요합니다. 






 여기서는 파이썬 3.6 윈도우 64비트 버전을 받아보겠습니다. 사실 어떤 것이든 무방하긴 합니다. 다운로드 받았으면 윈도우에서는 그냥 클릭만으로 설치가 가능하니 자세한 설명은 생략하고 아나콘다에 R을 설치해 보겠습니다. 


 아나콘다 설치가 마무리된 후에는 윈도우 메뉴에 Anaconda Prompt라는 메뉴가 보입니다. 안보이면 검색에서 찾으면 됩니다. 프롬프트 창을 띄운 후 다음을 입력합니다. 


conda install -c r r-essentials


 위와 같이 입력이 되어야 합니다. 정상적으로 된다면 엄청난 수의 R 패키지가 다운로드 된 후 설치 여부를 물어볼 것입니다. proceed 를 물어보면 엔터를 치고 다음으로 넘어가면 알아서 설치될 것입니다. 


 설치가 마무리되면 창에서 jupyter notebook을 치면 브라우저 환경으로 넘어갑니다. 여기서 자신이 주로 쓰는 브라우저 (저는 크롬)을 설정하면 브라우저 창에서 주피터 노트북이 열립니다. 






 New 메뉴를 눌렀을 때 주피터 노트북에서 Python 3 외에 R이 보이면 정상적으로 된 것입니다. 여기서 R을 클릭해 선택하면 R을 실행할 준비가 끝난 것입니다. 




 물론 R 사용자라면 기본적으로 R 스튜디오가 가장 편리해서 굳이 주피터 노트북은 사용할 필요가 없습니다. 하지만 R과 파이썬을 동시에 사용하고자 한다면 유용한 설치 과정입니다. 물론 R에서 텐서플로 같은 걸 쓴다면 개발 환경이 윈도우 보다는 리눅스가 더 안정적이긴 하겠지만 말이죠. 삽질 같지만, 제가 윈도우에서도 되는지 앞으로 시간 날때 확인해 보겠습니다. 





지구 역사상 최초의 거대 생물은 왜 커졌을까?



(Artist's impression of rangeomorphs, fern-like organisms that lived during the Ediacaran Period. Credit: Charlotte Kenchington)


 지구 생명의 역사를 보면 우리는 공룡이나 삼엽충 같은 큰 동물을 먼저 생각하지만, 사실 지구 생물체는 대부분의 시절을 단세포 형태로 지내다가 비교적 최근에 거대 다세포 생물로 진화했습니다. 확실하게 검증할 수 있는 거대 다세포 생물의 출현은 에디아카라기로 지금으로부터 5억4100 - 6억3500만년 전입니다. 이 시기 등장한 에디아카라 생물군은 현생 생물군과의 관계를 알기 힘든 독특한 생물체로 과학자들의 궁금증을 낳고 있습니다. 


 케임브리지 대학의 에밀리 미첼 박사(Dr. Emily Mitchell of Cambridge's Department of Earth Sciences)와 그녀의 동료들은 뉴펀들랜드에서 발견된 에디아카라기의 rangeomorphs 화석군을 분석해 이들이 왜 거대 다세포 생물이 되었는지 분석했습니다. rangeomorphs는 마치 양치 식물처럼 생긴 독특한 생물체로 길이는 수cm에서 2m까지 자랄 수 있었습니다. 앞서 이들에 대해서 소개드린 바 있습니다. 





 사실 이전에 지구 생명체가 단세포 수준인 점을 생각하면 rangeomorphs의 큰 크기는 미스터리한 부분입니다. 과학자들은 이들이 왜 이렇게 커졌는지에 대해서 몇 가지 가설을 내놓았습니다. 가장 먼저 생각할 수 있는 가설은 역시 크기가 크면 더 많이 먹을 수 있다는 것입니다. 이들이 살았던 환경은 깊은 바다로 광합성을 할 수 있는 여건이 아니었습니다. 따라서 유기물을 걸러 먹는 여과 섭식자일 가능성이 큽니다. 양치 식물처럼 큰 크기와 줄기 같은 구조물은 이를 위한 것이었을 가능성이 있습니다.


 하지만 연구팀은 다른 해석을 내놓았습니다. 가지 같은 구조가 크기가 커짐에 따라 더 많아지지는 않았다는 점을 들어 과연 여과를 더 하기 위한 것인지 의문을 제기한 것입니다. 대신 연구팀은 번식에 유리했을지 모른다는 가설을 제기했습니다. 큰 개체일수록 더 많은 알 (?)이나 포자를 뿌릴 수 있어 생식에 유리했다는 것입니다. 미첼 박사는 당시 바다가 지금과 달리 유기물은 풍부하고 포식자는 없어서 먹이를 두고 경쟁이 일어나지는 않았을 것이라고 주장했습니다. (The oceans at the time were very rich in nutrients, so there wasn't much competition for resources, and predators did not yet exist)


 물론 이 주장이 사실인지 검증하는 일 역시 간단한 문제는 아닙니다. 이들이 어떻게 번식을 했는지 아직 잘 모르기 때문이죠. 아무튼 이 미스터리한 에디아카라기 생물체는 과학자들의 흥미와 궁금증을 불러일으키는 존재입니다. 


 참고 


Emily G. Mitchell et al, The utility of height for the Ediacaran organisms of Mistaken Point, Nature Ecology & Evolution (2018). DOI: 10.1038/s41559-018-0591-6



우주 이야기 798 - 중성자별의 크기 추정하기



(Range of the size for a typical neutron star compared to the city of Frankfurt. Credit: Lukas Weih, Goethe University, satellite image: GeoBasis-DE/BKG (2009) Google)


 중성자별은 그 자체로 하나의 거대한 원자핵이라고 할 수 있는 천체입니다. 별의 잔해인 백색왜성 역시 밀도가 높지만, 중성자별은 아예 전자와 양성자가 붙어 모두 중성자로 변할 정도로 밀도가 높기 때문에 우주에서 가장 밀도가 높은 천체입니다. 만약 이보다 더 중력이 강해서 중성자까지 붕괴되면 더 이상 수축을 막을 수단이 없어 밀도가 무한대로 올라가는 블랙홀이 됩니다. 


 중성자별이 우주에서 가장 밀도가 높은 천체라는 점은 의문의 여지가 없지만, 구체적인 밀도를 계산하는 일은 매우 어려운 일입니다. 왜냐하면 질량과 달리 이렇게 작은 천체의 지름을 정확히 측정하기 어렵기 때문입니다. 중성자별의 예상 반지름은 8-16km까지 다양한 추정이 이었습니다. 적어도 태양의 1.4배에 달하는 질량을 감안하면 매우 작은 크기지만, 예상 반지름의 상한선과 하한선은 8배의 부피차가 있기 때문에 밀도를 정확히 추정하기 어렵다는 점을 알 수 있습니다. 


 프랑크푸르트 쾨테 대학 (Goethe University Frankfurt and the FIAS)의 연구팀은 중력파가 검출된 중성자별 충돌인 GW170817을 데이터를 이용해 관측 결과를 가장 잘 설명할 수 있는 모델을 찾았습니다. 괴테 대학의 루치아노 레졸라 교수 (Professor Luciano Rezzolla)와 그 동료들은 2017년 말부터 20억개의 모델을 테스트 해 가장 가능성 높은 시나리오를 확인했습니다. 그 결과 중성자별의 반지름은 12-13.5km 사이로 생각되며 이는 프랑크푸르트시와 비슷한 크기입니다. 


 물론 이것만으로 모든 궁금증이 풀렸다고 보기는 어렵습니다. 여전히 중성자별의 정확한 크기는 측정을 통해 밝혀내기 어려우며 이론적인 해석은 이론에 따라 달라질 수 있다는 문제점이 있습니다. 하지만 언젠가 인류가 중성자별을 직접 관측하고 그 크기와 물리적 특징을 정확히 알아내는 날이 올 것이라고 믿습니다. 지금은 어려워도 언젠가 답을 찾아낼 것입니다. 


 참고 


Elias R. Most et al, New Constraints on Radii and Tidal Deformabilities of Neutron Stars from GW170817, Physical Review Letters (2018). DOI: 10.1103/PhysRevLett.120.261103

2018년 6월 28일 목요일

SD Express 규격 발표 – PCI express와 NVMe 인터페이스를 SD 카드로 가져오다.


(SD Express will initially be found in SDUC, SDXC and SDHC memory cards. Source: SD Association)



 SD 카드의 규격을 정하는 SD Association이 SD 7.0 규격을 발표하면서 SD Express 규격을 발표했습니다. 이를 통해 PCI express와 NVMe 인터페이스를 SD 카드에서 사용할 수 있게 되어 사실상 SD 카드를 탈착식 SSD처럼 사용할 수 있게 되었습니다. 용량도 최대 128TB까지 늘어나 과거 6.0 규격에서 정한 2TB 한계에서 어느 정도 자유로워지게 됐습니다. 




 앞서 소개한 것처럼 PCI express를 SD 규격으로 가져온 것은 가장 합리적인 결정이라고 할 수 있습니다. 이미 SSD를 비롯한 다른 저장 장치와 그래픽 카드 같은 다른 장치에서 고속 인터페이스로 사용되고 있어 통합이 간편하고 이미 검증된 기술이기 때문입니다. 여기에 더해 SSD에서 쓰이는 NVMe도 가져와서 사실상 SD 카드 (마이크로 SD 포함)과 SSD의 차이가 크게 줄어들게 됐습니다. 앞으로 이 둘은 같은 플래시 기반 스토리지 플랫폼으로 발전할 것으로 예상됩니다. 


 다만 크기의 제약 때문에 당장 SD 카드가 TB급 용량을 지니거나 혹은 M.2 PCIe SSD처럼 속도가 빨라지기는 어렵습니다. 하지만 그래도 SD 6.0 규격의 이론상 최대 속도인 624MB/s보다 빠른 985MB/s의 전송속도가 가능해지며 NVMe 도입으로 4K 랜덤 읽기 쓰기 속도도 크게 빨라질 수 있습니다. PCI express 적용 SD카드는 EX 표시가 들어가 구분될 것이라고 합니다. 


 물론 PCIe 3.0 SD 카드는 초기에는 비싼 가격으로 8K 영상이나 360도 영상 촬영, VR 영상 촬영 등 특수 용도에 주로 사용될 것입니다. 그리고 가격이 저렴해지면서 나중에는 일반적인 규격으로 자리잡게 될 것입니다. 과연 초기 제품은 가격이 얼마나 할지도 궁금하네요. 아마도 같은 용량의 SSD보다는 훨씬 비쌀 것 같습니다. 


 참고 


역대 최고 기록을 세운 Wendelstein 7-X



(View inside the plasma vessel with graphite tile cladding. Credit: IPP, Jan Michael Hosan)

(Wendelstein 7-X attained the Stellarator world record for the fusion product. This product of the ion temperature, plasma density and energy confinement time specifies how close one is getting to the power plant values needed to ignite a plasma. Credit: Graphic: IPP)


 앞서 소개한 Wendelstein 7-X이 스텔라레이터 가운데 역대 최대 수준의 플라스마 밀도와 온도 기록을 달성했다는 소식입니다. 스텔라레이터는 제작 과정이 까다로워 한동안 토카막 방식에 밀려 주목받지 못했지만, 막스 플랑크 플라스마 물리학 연구소 Max Planck Institute for Plasma Physics (IPP)와 독일 정부는 10억 유로의 거금을 들여 Wendelstein 7-X을 개발했습니다. 그 동안 기술 발전으로 전자석 코일을 정밀한 각도로 틀어서 배치하는 일이 가능해졌기 때문입니다. 상세한 내용은 이전 포스트를 참조해 주시기 바랍니다. 



                     https://blog.naver.com/jjy0501/220618293433
               

 스텔라레이터는 의도대로만 된다면 플라스마를 유지하는 데 있어서는 토카막 방식보다 유리한 점이 있습니다. 물론 이론대로 성능이 나올 수 있을지는 검증이 필요한 부분입니다. 막스 플랑크 연구소의 과학자들은 조금씩 출력을 높여 0.8 x 1020 밀도의 플라스마 입자를 4000만도까지 가열했습니다. 26초간 이 기록을 유지해서 Wendelstein 7-X 는 역대 최고 기록 스텔라레이터가 됐습니다. 


 앞으로 Wendelstein 7-X는 탄소 강화 소재 및 추가적인 수냉 시스템으 도움을 받아 30분간 초고온 플라스마를 안정적으로 유지한다면 스텔라레이터가 차세대 핵융합 반응로 후보로 주목받게 될 것입니다. 물론 그것이 상용화 수준의 핵융합로를 의미하는 것은 아니지만, 더 강력한 스텔라레이터 핵융합 실험 장치를 개발할 수 있는 근거는 되는 셈입니다. 


 과연 어떤 결과가 나올지 궁금합니다.



 참고 



Magnetic configuration effects on the Wendelstein 7-X stellarator, Nature Physics (2018). DOI: 10.1038/s41567-018-0141-9 



자기장으로 방향을 감지하는 나방


(Bogong Moth. Credit: Eric Warrant)

(Bogong Moths on a cave wall. Credit: Eric Warrant)


 나방은 주로 밤에 활동합니다. 특히 호주에서 야간에 활동하는 거대한 보공 나방 (Bogong moth) 무리는 1000km 이상 장거리를 밤중에 이동합니다. 흥미로운 사실은 특별한 지형 지물을 식별할 수 없는 상황에서조차 보공 나방이 길을 잃지 않고 매우 정확하게 목적지에 도달한다는 사실입니다. 가능한 설명은 이 나방이 별이나 달 (야행성이라 태양은 불가능)의 위치를 식별해 방위를 식별한다는 것과 지구 자기장을 감지하는 생체 나침판을 가지고 있다는 것입니다. 


 스웨덴 룬드 대학의 연구팀은 어느 것이 옳은지 알기 위해 실험실 및 야생 환경에서 보공 나방을 이용한 연구를 진행했습니다. 그 결과 주변 환경을 볼 수 없게 가린 통 속에서도 이 나방은 정확하게 위치를 잡는 것으로 나타났습니다. 반면 자기장을 변형시키면 수 분만에 방향을 잃었습니다. 이는 이 단순한 곤충이 지구 자기장을 감지해 방향을 파악한다는 점을 보여줍니다. 




(동영상)



 보공 나방은 매우 단순한 뇌와 신경계를 가지고 비행을 할 뿐 아니라 지구 자기장을 감지할 수 있습니다. 또 다른 나방은 천적인 박쥐의 초음파 신호를 감지하고 재밍하기까지 합니다. 물론 자기장을 감지하는 곤충이 나방만은 아니지만, 놀라운 능력임에는 분명합니다. 


 그리고 편견을 가져서는 안되겠지만, 동굴 벽에 빽빽히 들러붙은 나방의 모습을 보니 좀 징그럽긴 한 것 같습니다. 동굴 투어 같다가 마주치면 기겁할 듯 합니다. 


 참고 


Current Biology, Dreyer et al.: "The Earth's Magnetic Field and Visual Landmarks Steer Migratory Flight Behavior in the Nocturnal Australian Bogong Moth" DOI: 10.1016/j.cub.2018.05.030 , https://www.cell.com/current-biology/fulltext/S0960-9822(18)30632-8




2018년 6월 27일 수요일

우분투 Ubuntu 18.04 LTS VMware 가상 머신 설치




 우분투 Ubuntu 18.04 LTS (Bionic Beaver)를 VMware 가상 머신에 설치하는 간단한 팁입니다. 사실 최신 VMware 버전에서는 자동으로 인식하고 설치를 지원하기 때문에 그다지 어려울 것이 없습니다. 거의 클릭 몇 번으로 설치가 가능합니다. 


 일단 우분투 릴리즈 사이트에서 Ubuntu 18.04 LTS (Bionic Beaver)를 다운로드 받습니다. 이미지 파일로 받은 후 VMware 에서 불러오면 됩니다. VMware는 VMware player를 다운로드 받은 후 최신 버전으로 업데이트 하면 우분투 18.04 이미지를 자동으로 인식할 것입니다. 




(참고: Ubuntu 18.04: What's New?)




 Create a New Virtual Machine을 클릭한 후 설명 나오는 데로 따라하면 되기 때문에 그다지 어려울 것이 없을 것 같습니다. 위의 화면에서 이미지 브라우저 위치를 로드해주고 다음으로 넘어갑니다. ID 및 패스워드를 정하고 다음으로 넘어갑니다. 



 그 다음 가상 머신 이름과 가상 머신 이미지가 있을 위치를 정해줍니다. 




 


 그 다음 가상 머신 최대 하드디스크 크기와 기타 사양을 정해줍니다. 당연히 호스트 머신의 사양을 넘어서는 안됩니다. 또 가상화 관련 기능을 바이오스에서 켜줘야 합니다. customize hardware에서 상세한 설정이 가능합니다. 마무리 되었으면 finish를 누르면 설치가 진행됩니다. VMware tool 설치하겠냐고 나오면 그렇다고 누르면 됩니다. 다운로드와 함께 설치가 진행될 것입니다. 



 이렇게 설치 화면이 나오면 제대로 된 것입니다. 설치 시간은 컴퓨터 사양과 네트워크 상태에 따라 다른데 일반적인 경우 몇 시간씩 걸리지는 않을 것입니다. 저의 경우 10분 좀 넘게 걸린 것 같습니다. 설정한 암호를 치면 우분투가 시작될 것입니다. 




 VMware 툴은 기본으로 설치가 된 상태로 더 건드릴 것이 없는 상태입니다. 다만 세세한 설정은 필요할 수 있습니다. 



청소부 새우는 어떻게 고객을 알아보나



(Cleaner shrimp communicate with various species of fish using long white antennae that members of their own kind can't see. Credit: Sarah Solie, Duke University)


 작고 투명한 청소부 새우는 물고기의 입과 아기미 등 주요 부위에서 기생충과 음식물 찌꺼기, 죽은 피부 등 불필요한 부분을 제거해줍니다. 물고기는 청소를 통해 기생충 감염 및 다른 감염병을 예방할 수 있고 새우는 꽁짜로 식사를 할 수 있으니 서로 이득입니다. 하지만 한 가지 의문은 왜 물고기들이 이 새우를 잡아먹지 않느냐는 것입니다. 


공생 관계라서 그렇다는 것은 충분한 설명이 될 수 없습니다. 청소 새우는 이 물고기들이 먹는 새우와 다른 갑각류와 크게 다른 부분이 없으며 사실 먹이로 던저주면 결코 마다하지 않는 먹잇감입니다. 따라서 물고기와 청소 새우간에 서로를 식별할 수 있는 어떤 신호가 존재할 가능성이 큽니다. 


 듀크 대학의 엘레노어 카베스 (Eleanor Caves, a postdoctoral researcher at Duke University) 를 비롯한 과학자들은 카리브 해에 살고 있는 청소 새우인 Ancylomenes pedersoni의 행동을 연구했습니다. 이 새우는 몇 마리가 하나의 팀을 이뤄 일종의 물고기 세차장을 운용하고 있습니다. 연구팀은 GoPro 캠을 이용해서 10개의 물고기 세차장을 관찰했습니다. 


 18마리의 새우와 10마리의 물고기가 야생 환경에서 마주친 모습을 분석한 결과 청소부 새우가 긴 흰색 더듬이를 훈들어 신호를 한다는 사실을 발견했습니다. 실험실 환경에서 아이패드를 이용해 물고기를 보여줄 때도 새우들은 비슷한 행동을 취했습니다. 반면 더음이를 흔들지 않을 때는 청소에 나서는 경우가 드문 것으로 나타났습니다. 


 결국 청소부 새우는 자신을 노리는 포식자와 고객을 구분할 수 있으며 서비스 준비가 되면 신호를 보내 의사를 표시하는 것으로 보입니다. 물론 이것이 전부는 아니겠지만, 퍼즐 중 한 조각을 맞춘 것입니다. 한 가지 더 흥미로운 사실은 새우와 물고기의 눈에 서로가 어떻게 보이느냐는 점입니다. 


 사실 새우는 시력이 극히 좋지 않기 때문에 사실 물고기의 대략적인 윤곽을 보고 파악을 할 수 밖에 없습니다. 반면 물고기는 비교적 시력이 좋아서 새우가 더듬이를 흔드는 모습을 분명하게 파악할 수 있습니다. 물고기는 새우를 파악하는데 어려움이 없겠지만, 새우가 어떻게 물고기를 정확히 구분하는지도 흥미로운 질문 같습니다. 



(인간과 새우 눈에 보인 물고기) 



(물고기와 인간 눈에 보인 새우)


 참고 


Eleanor M. Caves et al, Mutual visual signalling between the cleaner shrimp Ancylomenes pedersoni and its client fish, Proceedings of the Royal Society B: Biological Sciences (2018). DOI: 10.1098/rspb.2018.0800 

DARPA의 Ground X-Vehicle Technologies (GXV-T) 개발 현황



(Ground-based armored fighting vehicles and their occupants have traditionally relied on armor and maneuverability for protection. The amount of armor needed for today’s threat environments, however, is becoming increasingly burdensome and ineffective against ever-improving weaponry. DARPA's Ground X-Vehicle Technology (GXV-T) program seeks to develop revolutionary technologies to enable a layered approach to protection that would use less armor more strategically and improve vehicles’ ability to avoid detection, engagement and hits by adversaries. Such capabilities would enable smaller, faster vehicles in the future to more efficiently and cost-effectively tackle varied and unpredictable combat situations.  Credit : DARPA ) 


 DARPA가 개발하는 차세대 전투 차량인 Ground X-Vehicle Technologies (GXV-T)의 기술 데모가 공개되었습니다. 과거 장갑차량과 달리 무거운 장갑을 탑재하고 부피가 큰 차량 대신 가볍고 기동성이 좋으며 크기가 작은 혁신적인 전투 차량을 목표로 개발되는 GXV-T는 사실 차량 자체보다는 기술 개발이 더 목적이라고 하겠습니다. 




 물론 이런 차량은 정찰 및 수색에는 유리해도 전투에서는 전통적인 탱크와 장갑차보다 더 좋은 성능을 기대하기는 어려울 것입니다. 하지만 전쟁을 수행하는 데 있어 다양한 목적의 차량이 필요하기 때문에 차세대 기술력을 집중한 신개념 전투 차량 개발은 중요합니다. 이런 기술 개발은 DARPA의 목적과도 부합된다고 하겠습니다. 


 아무튼 GXV-T는 현재 시제 차량을 만들거나 혹은 험비 같은 기존 차량에 새로운 기술을 테스트하는 방식으로 기술 개발이 진행되고 있습니다. 최근 공개한 영상에서는 자율 주행 기술과 360도 시야 확보가 가능한 헤드 마운트 디스플레이를 비롯해서 현재 개발 중인 신기술이 대거 공개되었습니다. 하지만 가장 눈길을 끄는 부분은 매우 독특하게 생긴 동력 시스템과 바퀴 구조입니다. 



(Demonstrations of DARPA's Ground X-Vehicle Technologies)


 동영상 중간에 나오는 (대략 2분 이후) 새로운 동력 시스템은 바퀴에 전기 모터 및 기어 시스템을 장착하고 형태가 변형되는 특이한 바퀴를 가지고 있습니다. 이를 이용해서 거친 지형과 평탄한 지형에서 각각 최적화된 모양으로 바퀴 모양이 바뀐다는 것인데, 실용화 여부는 판단하기 이르지만 매우 독특한 메카니즘임에 분명합니다. 


 GXV-T가 어떻게 상용화되고 실전 배치될지는 지금 말하기 어렵지만, 몇 가지 주목받는 기술이 분명 존재합니다. 가장 대표적인 것은 장갑차량 내부에서 주변환경을 쉽게 파악할 수 있는 디스플레이와 자율주행 기술입니다. 시야가 제한된 장갑 차량 내부에서 주변 환경을 쉽게 파악하는 일은 매우 중요합니다. 자율 주행 기술은 운전수의 피로를 덜거나 혹은 아예 운전수를 없애 승무원을 줄이거나 공간을 더 확보할 수 있을 것입니다. 


 마치 게임에서 나오는 것 같은 외형의 GXV-T가 실제로 개발될 것인지 기술 검증 플랫폼으로 사용될 것인지 결과가 주목됩니다. 


 참고 



2018년 6월 26일 화요일

데이터 가공 및 분석 - dplyr 패키지 (2)




 계속해서 dplyr 패키지를 이용한 데이터 가공에 대해서 이야기해 보겠습니다. subset과 다른 dplyr의 추가 기능 중 하나는 변수를 가공해서 새로운 변수를 만들 수 있다는 것입니다. 예를 들어 몸무게와 키를 이용해 체질량 지수 (BMI)를 계산하거나 혹은 달러 표시와 원화 표시를 동시에 할 수 있습니다. mutate 기능을 사용한 것으로 여기서는 1달러당 1100원으로 원화를 표시해 보겠습니다. mutate(price_kr=price*1100)%>%의 문법으로 앞에서 봤던 사용법과 크게 다르지 않습니다. 


D1%>%
  filter(cut=="Ideal")%>%  #Ideal 추출 
  select(carat,cut,color,clarity,price)%>% # 캐럿, 컷, 칼러, 채도, 가격 추출
  mutate(price_kr=price*1100)%>% #원화표시 가격
  arrange(carat) #오름차순 정렬

> D1%>%
+   filter(cut=="Ideal")%>%  #Ideal 추출 
+   select(carat,cut,color,clarity,price)%>% # 캐럿, 컷, 칼러, 채도, 가격 추출
+   mutate(price_kr=price*1100)%>% #원화표시 가격
+   arrange(carat) #오름차순 정렬
# A tibble: 18 x 6
   carat cut   color clarity price price_kr
          
 1  0.3  Ideal F     VS1       570   627000
 2  0.31 Ideal H     IF        772   849200
 3  0.31 Ideal D     VS2       942  1036200
 4  0.32 Ideal E     VVS1     1020  1122000
 5  0.33 Ideal G     IF        946  1040600
 6  0.33 Ideal H     VVS1      713   784300
 7  0.41 Ideal J     VS1       648   712800
 8  0.44 Ideal G     SI1       772   849200
 9  0.54 Ideal D     VS2      1993  2192300
10  0.6  Ideal F     VS1      2142  2356200
11  0.62 Ideal H     VS1      1808  1988800
12  0.7  Ideal F     SI1      2573  2830300
13  0.74 Ideal D     VS2      3858  4243800
14  1.01 Ideal D     SI2      5206  5726600
15  1.09 Ideal G     VVS2     8970  9867000
16  1.09 Ideal J     SI2      5034  5537400
17  1.11 Ideal F     VS2      9057  9962700
18  1.2  Ideal I     VS2      5699  6268900


 단순 계산 뿐 아니라 범주형 자료로 만들 수 있습니다. ifelse를 사용해 100만원을 기준으로 high와 low 그룹으로 나눠보겠습니다. mutate(price_group=ifelse(price_kr>1000000,"high","low"))%>%를 추가하면 됩니다. 

D1%>%
  filter(cut=="Ideal")%>%  #Ideal 추출 
  select(carat,cut,color,clarity,price)%>% # 캐럿, 컷, 칼러, 채도, 가격 추출
  mutate(price_kr=price*1100)%>% #원화표시 가격
  mutate(price_group=ifelse(price_kr>1000000,"high","low"))%>% #가격분류
  arrange(carat) #오름차순 정렬

> D1%>%
+   filter(cut=="Ideal")%>%  #Ideal 추출 
+   select(carat,cut,color,clarity,price)%>% # 캐럿, 컷, 칼러, 채도, 가격 추출
+   mutate(price_kr=price*1100)%>% #원화표시 가격
+   mutate(price_group=ifelse(price_kr>1000000,"high","low"))%>% #가격분류
+   arrange(carat) #오름차순 정렬
# A tibble: 18 x 7
   carat cut   color clarity price price_kr price_group
                 
 1  0.3  Ideal F     VS1       570   627000 low        
 2  0.31 Ideal H     IF        772   849200 low        
 3  0.31 Ideal D     VS2       942  1036200 high       
 4  0.32 Ideal E     VVS1     1020  1122000 high       
 5  0.33 Ideal G     IF        946  1040600 high       
 6  0.33 Ideal H     VVS1      713   784300 low        
 7  0.41 Ideal J     VS1       648   712800 low        
 8  0.44 Ideal G     SI1       772   849200 low        
 9  0.54 Ideal D     VS2      1993  2192300 high       
10  0.6  Ideal F     VS1      2142  2356200 high       
11  0.62 Ideal H     VS1      1808  1988800 high       
12  0.7  Ideal F     SI1      2573  2830300 high       
13  0.74 Ideal D     VS2      3858  4243800 high       
14  1.01 Ideal D     SI2      5206  5726600 high       
15  1.09 Ideal G     VVS2     8970  9867000 high       
16  1.09 Ideal J     SI2      5034  5537400 high       
17  1.11 Ideal F     VS2      9057  9962700 high       
18  1.2  Ideal I     VS2      5699  6268900 high       


 dplyr를 통해 데이터를 쉽게 추출하고 가공할 수 있다는 점은 큰 매력이라고 하겠습니다. 물론 이렇게 가공한 내용은 데이터프레임 이름<- csv="" nbsp="" span="">


 또 다른 중요한 기능은 그룹별 통계를 내서 새로운 데이터 프레임으로 만들 수 있는 기능입니다. group_by()와 summarise()를 통해 그룹별로 분류하고 평균이나 표준 편차 등 중요한 기본 통계량을 계산할 수 있습니다. 여기서는 cut 그룹별로 분류하고 가격을 알아보겠습니다. 


D1%>%
  select(carat,cut,color,clarity,price)%>% # 캐럿, 컷, 칼러, 채도, 가격 추출
  group_by(cut)%>% #cut 그룹별 분류 
  summarise(cut_price=mean(price)) #그룹별 평균 가격 

> D1%>%
+   select(carat,cut,color,clarity,price)%>% # 캐럿, 컷, 칼러, 채도, 가격 추출
+   group_by(cut)%>% #cut 그룹별 분류 
+   summarise(cut_price=mean(price)) #그룹별 평균 가격
# A tibble: 5 x 2
  cut       cut_price
           
1 Fair          3608 
2 Good          3850.
3 Very Good     4586 
4 Premium       6083.
5 Ideal         2929.

 의외로 프리미엄보다 아이디얼의 가격이 낮습니다. 아마도 캐럿 등 다른 요인이 있을 것 같은데 같이 표시해보겠습니다. summarise는 줄을 바꿔서 계속해서 명령을 추가할 수 있습니다. 

D1%>%
  select(carat,cut,color,clarity,price)%>% # 캐럿, 컷, 칼러, 채도, 가격 추출
  group_by(cut)%>% #cut 그룹별 분류 
  summarise(cut_price=mean(price),
            cut_carat=mean(carat)) #그룹별 평균 가격 및 캐럿 

> D1%>%
+   select(carat,cut,color,clarity,price)%>% # 캐럿, 컷, 칼러, 채도, 가격 추출
+   group_by(cut)%>% #cut 그룹별 분류 
+   summarise(cut_price=mean(price),
+             cut_carat=mean(carat)) #그룹별 평균 가격 및 캐럿
# A tibble: 5 x 3
  cut       cut_price cut_carat
                
1 Fair          3608      0.87 
2 Good          3850.     0.767
3 Very Good     4586      0.895
4 Premium       6083.     1.19 
5 Ideal         2929.     0.636


 역시 그런 결과가 나왔습니다. Ideal이 캐럿이 작습니다. 이에 여기에 각 값별로 숫자가 얼마나 되는지 알아보겠습니다. N=n()을 이용하면 됩니다. 


> D1%>%
+   select(carat,cut,color,clarity,price)%>% # 캐럿, 컷, 칼러, 채도, 가격 추출
+   group_by(cut)%>% #cut 그룹별 분류 
+   summarise(cut_price=mean(price),
+             cut_carat=mean(carat),
+             N=n()) #그룹별 평균 비교
# A tibble: 5 x 4
  cut       cut_price cut_carat     N
                
1 Fair          3608      0.87      2
2 Good          3850.     0.767     9
3 Very Good     4586      0.895    11
4 Premium       6083.     1.19     10
5 Ideal         2929.     0.636    18


이렇게 얻은 통계 데이터를 D3라는 새로운 데이터 프레임으로 만들어보겠습니다. 


D3<-d1>%
  select(carat,cut,color,clarity,price)%>% # 캐럿, 컷, 칼러, 채도, 가격 추출
  group_by(cut)%>% #cut 그룹별 분류 
  summarise(cut_price=mean(price),
            cut_carat=mean(carat),
            N=n()) #그룹별 평균 비교 

D3

> D3<-d1>%
+   select(carat,cut,color,clarity,price)%>% # 캐럿, 컷, 칼러, 채도, 가격 추출
+   group_by(cut)%>% #cut 그룹별 분류 
+   summarise(cut_price=mean(price),
+             cut_carat=mean(carat),
+             N=n()) #그룹별 평균 비교 
> D3
# A tibble: 5 x 4
  cut       cut_price cut_carat     N
                
1 Fair          3608      0.87      2
2 Good          3850.     0.767     9
3 Very Good     4586      0.895    11
4 Premium       6083.     1.19     10
5 Ideal         2929.     0.636    18


 앞서 소개한 aggregate 역시 데이터 분석에서 유용하게 쓰일 수 있지만, 이렇게 데이터 프레임으로 저장하기는 어렵습니다. dplyr의 유용성이 여기서 드러납니다. 


이제 마지막으로 diamonds 데이터 전체에 대해서도 비슷한 결과가 나오는지 알아보겠습니다. 표준편차까지 추가해서 알아보겠습니다. 

diamonds%>%
  select(carat,cut,color,clarity,price)%>% # 캐럿, 컷, 칼러, 채도, 가격 추출
  group_by(cut)%>% #cut 그룹별 분류 
  summarise(cut_price=mean(price),
            cut_carat=mean(carat),
            N=n()) #그룹별 평균 비교 

> diamonds%>%
+   select(carat,cut,color,clarity,price)%>% # 캐럿, 컷, 칼러, 채도, 가격 추출
+   group_by(cut)%>% #cut 그룹별 분류 
+   summarise(cut_price=mean(price),
+             cut_carat=mean(carat),
+             N=n()) #그룹별 평균 비교
# A tibble: 5 x 4
  cut       cut_price cut_carat     N
                
1 Fair          4359.     1.05   1610
2 Good          3929.     0.849  4906
3 Very Good     3982.     0.806 12082
4 Premium       4584.     0.892 13791
5 Ideal         3458.     0.703 21551


 전체 결과를 보니 표본이 전체 경향을 대표하기는 하지만 약간은 다르다는 점을 알 수 있습니다. 아무튼 각 그룹별 통계를 비롯한 여러 가지 데이터를 dplyr로 확인하고 저장할 수 있다는 점이 큰 매력이라고 할 수 있습니다. 다음에는 데이터 가공 및 정리에서 매우 중요한 데이터 합치기에 대해서 설명해 보겠습니다.