From 4175cb2c9be0f3941c2ea19995927ab42b631d82 Mon Sep 17 00:00:00 2001 From: Aaron Schlegel Date: Fri, 10 Jan 2020 07:58:04 -0800 Subject: [PATCH] updates, doc build, new notebook --- .gitignore | 3 +- CHANGELOG.md | 4 + README.md | 50 +++ docs/build/doctrees/environment.pickle | Bin 34295 -> 34688 bytes docs/build/doctrees/versions.doctree | Bin 12931 -> 14437 bytes docs/build/html/_sources/versions.rst.txt | 5 + docs/build/html/searchindex.js | 2 +- docs/build/html/versions.html | 7 + docs/source/versions.rst | 5 + ...lose-Approaching Objects with nasapy.ipynb | 410 ++++++++++++++++++ ...pacts with nasapy, pandas and folium.ipynb | 2 +- setup.py | 2 +- 12 files changed, 486 insertions(+), 4 deletions(-) create mode 100644 notebooks/Analyzing the Next Decade of Earth Close-Approaching Objects with nasapy.ipynb diff --git a/.gitignore b/.gitignore index 2111531..fc0d738 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,5 @@ dist/ /build/ nasapy.egg-info/ *.pyc -*.DS_Store \ No newline at end of file +*.DS_Store +*.ipynb_checkpoints \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e5c3fc..7acbd3f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Version History +## Version 0.2.6 + +- `sentry` function now returns a summary object when `return_df=True` and a `des` or `spk` parameter are not specified. + ## Version 0.2.5 - `sentry` function now returns results as expected when not returning a pandas DataFrame. diff --git a/README.md b/README.md index 94c5b33..600e913 100644 --- a/README.md +++ b/README.md @@ -252,6 +252,56 @@ fireballs(date_min='2019-01-01') fireballs(date_min='2000-01-01', date_max='2020-01-01', return_df=True) ~~~ +#### Jet Propulsion Laboratory/Solar System Dynamics small body mission design suite API + +~~~ python +# Search for mission design data for SPK-ID 2000433 +r = mission_design(spk=2000433) +# Print the object data from the returned dictionary object. +r['object'] +~~~ + +#### Get Data on Near-Earth Object Human Space Flight Accessible Targets + +~~~ python +# Get all available summary data for NHATS objects. +n = nhats() +# Get summary data as a pandas DataFrame +n = nhats(return_df=True) +# Get the results from a 'standard' search on the NHATS webpage. +nhats(delta_v=6, duration=360, stay=8, magnitude=26, launch='2020-2045', orbit_condition_code=7) +# Return data for a specific object by its designation +nhats(des=99942) +~~~ + +#### Get Data from NASA's Center for Near-Earth Object Studies (CNEOS) Scout system + +~~~ python +# Get all available summary data. +scout() +# Return all summary data as a pandas DataFrame. +scout(return_df=True) +# Return data and plot files for a specific object by its temporary designation. Note the object may no longer +# exist in the current database +scout(tdes='P20UvyK') +# Get ephemeris data for a specific object at the current time with a Field of View diameter of 5 arc-minutes +# with a limiting V-magnitude of 23.1. +scout(tdes='P20UvyK', fov_diam=5, fov_vmag=23.1) +~~~ + +#### Get Data from the Center for Near Earth Object Studies (CNEOS) Sentry system + +~~~ python +# Get summary data for available sentry objects. +sentry() +# Get summary data as a pandas DataFrame +sentry(return_df=True) +# Get data for a specific Sentry object by its designation. +sentry(des=99942) +# Get data for objects removed from the Sentry system. +sentry(removed=1) +~~~ + Other function examples #### Getting the Julian and Modified Julian Date diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle index c0ad1bb37d8f82acb1087eb91b6f42a5b61c03c0..957c361b04382670a5f1addde3254fb9c0ce8d01 100644 GIT binary patch delta 3082 zcmZvee@s(X6vz7>Qc8IcWFnYSeimpEgN+IhHE%pba6le=5 zZtF7SJU7Yw0b7hLI+c)^Em@{9{z}}Y{Na`uO?1Xh7q_wOk43k|-TU5buciN-p7%ZH zbMEas_uhB^dXM&fKu7zQ9B_@zM&DPbM4PQ0T%Qn#VtdR&K+((D9cG)=G51XUfKC&| zit-=!WNR*~WW1M_$Rou}ZlCKZh5EQhDrh8P^?FVLW0lLq-!YPgu4 z1XDRa$~%{(kr$xUG}u)28yq%%L>+9W2m|sOV?s2f5L|S*2(kU@8Uu%FUHZ3kR z+%lMISdT}emSS%aC~y0mE|tK4OKS*leGpt15!}>arduUY!RZOGIS4jI1T#BV(jyXh ztaBLw`hwtKL~v@?Ci=JpmYK5XeR61NPKDDAI`QvKM`S9@FVoi~=9XDS40bg**rkZz zZGH{?y9AoMQVH;J5PTF7G+FZLmlR?r9$AuzCMGI^jgJ@IMZNg3yPhtQ(EZkY0$m$I z^^wt|wypGb34OhXTyBOCS|1s$-+h|)N@$C{mKb#)gt{Z4jd0Mhn*J1{M$kBu33Mui z9$t)E43!k1O;Zxjht~19xUiR8QOIO4Ybc{0!ykqX@%YizCT?zC2{n1CaKu;%<9a#T z#OZNQ@Gca0)g$nmD=06d8gr^3 zSeS3xjIil#8Og;0Rea-p@Gq!r5{H( z_Un=D?bjhY)xQ$iZ~9fpKJ3pzR_VcYiaa^U)_Jhv^5i1>u_q&C22Cv>@8+B)TZgb0 zee0YS4$o-bla4YLJb9v3D>*0I!8*msE_l+wIG{uUZXnYeULdy9Z0Fioi^YM;gcVQd zHaqYqw6%kCn0HwhCq!FKtTO@_?P#~ToQw124h3g*+TD1@%%Hj;Y(N)ZA-?Hg1ETB> zr_=$c8_Y*-@(ik}b1*r$iaHNh21^nzqI~`mHkYxv0trKT-V4ap@-K!0%obaR%fe;8 zA>I+3f?o*B;IAWW487B~F(Dv#aIC%EB=9$pXzJo4mW-U7QfAs1D8Nd!nRx z0YU%!*^nwebU6`tFWel;W?ca#YqeP|Y#WCy*+vS>eK|}c zDQxm-7$YgTkg$Ukj`<3iouqKbr)AnnVX41>=_G{;fA&%{As{!Pg@4@W4&_f`EJOs( z_zM{uDLnM+89OQD4(k{fDHw-WGJT}5e^|wMNa2g&EM|xl9t>+3KPe=Sap3KT3x0V9~PO?PSpwg`(dfkXya;;J|3ngbaNeMwpChx zI03>EmP-k&!@+@aK$(bhJ|uFWXjIKil7ayVhe*Lcn&Lf52*?e@1z~(EtDd delta 3045 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 WIT%|IVy~k0L3m*!{sy%#jQj(3wy?+m delta 1589 zcmZuxYiv|S6lP}k?%v%(yURXO>fU`^w_Enrb{lNBHq;cNAAKN}_9u z6==h5(uB1l-|`P57}I~y>Z;+V#>bCFQ%Ud@W91=)m{^c#Ol-8y%gz91 z_6b6E4L9re+t^2(VG@H4Z&CI&h|7N$o6PTHttHZ0E|$m2hs*1kA|?{nrw0%YuT~oP z>`mOVMadgD<6Q48uwtHRY%2@12n%i#%M&2!Abxgb(NUMefLnJs$*NT>WT*t^)9o%r z%m}kArFgJW)$px*k#M`VkH!exK@To_{5^{Ie#kQ`%fhTpb#vk!g$G-B_2%MlbG}A zj#0CiBeEDWf^+UjWw-xH3x%okbWMebbT^$Rkm{yuaVM7am#*Rm|5a=Z+!0VAtBLRW zD#2cDlW$h+W8YI|kHwcR!^z=nISk3?DXAUnSGn!-C!sE zZ8`gnnH}cY^R?{fLTRs?uGrg+=}%wo}6H=CFY(ETaV*S)oJ{<$u0D zaSZ(QGMaAN&fOBJysi%uTY)Rd??aoTmm05BSyeO2AJJ^I8=pq+w~7ExC|%SzTLqc1 zUldI-b}gwi^BqT}z7jz(w&FpFs~s^P)Q_<&-tncdrA2q# z6vq@YZcy19*TihOH{zlcSGq?C911xIFin4Lm%{5K1IrfbyNPKptpb_CoLE@54L8+=BW3bZS a`68k9R^HE1Ysjb*P7uy)J8_^VoA?{39L@Ux diff --git a/docs/build/html/_sources/versions.rst.txt b/docs/build/html/_sources/versions.rst.txt index c747487..6b47987 100644 --- a/docs/build/html/_sources/versions.rst.txt +++ b/docs/build/html/_sources/versions.rst.txt @@ -4,6 +4,11 @@ Version History =============== +Version 0.2.6 +------------- + +- :code:`sentry` function now returns a summary object when :code:`return_df=True` and a :code:`des` or :code:`spk` parameter are not specified. + Version 0.2.5 ------------- diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js index feab27d..d512ec3 100644 --- a/docs/build/html/searchindex.js +++ b/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["api","index","versions"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["api.rst","index.rst","versions.rst"],objects:{"":{Nasa:[0,0,1,""],close_approach:[0,1,1,""],fireballs:[0,1,1,""],julian_date:[0,1,1,""],media_asset_captions:[0,1,1,""],media_asset_manifest:[0,1,1,""],media_asset_metadata:[0,1,1,""],media_search:[0,1,1,""],mission_design:[0,1,1,""],nhats:[0,1,1,""],scout:[0,1,1,""],sentry:[0,1,1,""],tle:[0,1,1,""]},Nasa:{asteroid_feed:[0,1,1,""],coronal_mass_ejection:[0,1,1,""],earth_assets:[0,1,1,""],earth_imagery:[0,1,1,""],epic:[0,1,1,""],exoplanets:[0,1,1,""],genelab_search:[0,1,1,""],geomagnetic_storm:[0,1,1,""],get_asteroids:[0,1,1,""],hight_speed_stream:[0,1,1,""],interplantary_shock:[0,1,1,""],magnetopause_crossing:[0,1,1,""],mars_rover:[0,1,1,""],mars_weather:[0,1,1,""],picture_of_the_day:[0,1,1,""],radiation_belt_enhancement:[0,1,1,""],solar_energetic_particle:[0,1,1,""],solar_flare:[0,1,1,""],techport:[0,1,1,""],wsa_enlil_simulation:[0,1,1,""]}},objnames:{"0":["py","class","Python class"],"1":["py","method","Python method"]},objtypes:{"0":"py:class","1":"py:method"},terms:{"01au":0,"05ld":0,"1000th":1,"100th":0,"2048x2048":0,"2_09":0,"2au":0,"boolean":0,"case":0,"class":[0,1],"default":0,"export":0,"float":0,"function":[0,2],"new":0,"return":[0,1,2],"true":[0,1,2],"while":[0,1],AND:0,Added:2,For:0,NOT:0,Near:2,The:[0,1,2],Using:1,Will:0,abov:1,absolut:0,accept:0,access:[0,2],accur:0,accurate_onli:0,activ:0,add:[0,2],adding:0,advanc:0,after:[0,1],alias:0,aliast:0,align:0,all:[0,1],allow:[1,2],also:[0,1],alt_max:0,alt_min:0,altern:0,although:1,altitud:0,analysi:[0,2],angl:0,ani:[0,1],anl:0,annot:0,anomali:0,apertur:0,api:2,apollo:[0,1],append:0,approach:[0,1],approeach:0,appropri:0,approxim:0,april:[0,1],arc:0,archiv:[0,2],area:0,argonn:0,as11:0,asc:0,ascend:0,aschleg:1,assess:2,asset:[0,1],associ:0,assum:1,asteroid:0,asteroid_fe:[0,1],asteroid_id:[0,1],astronom:0,astrononmi:0,atmospher:0,attribut:1,audio:0,avail:0,badg:1,base:0,been:[0,2],begin:[0,1],begin_d:[0,1],below:2,belt:[0,1],between:0,binder:1,bioinformat:0,biotechnolog:0,bodi:0,both:0,bright:0,brighter:0,bug:2,burn:0,calcul:[0,1],calendar:0,can:[0,1],caption:0,captur:0,cassegrain:0,catalog:0,caus:0,ccd:0,celestrak:0,cere:0,certain:0,cgene:[0,1],charg:0,chemcam:0,choos:1,chosen:0,chronicl:0,chronolog:0,claus:0,click:1,clone:1,close:0,close_approach:[0,2],closest:0,cloud:[0,1],cloud_scor:[0,1],cme:[0,1],cneo:2,code:0,coerc:2,collect:0,color:0,colset:0,column:0,com:1,combin:0,comet:0,comma:0,commun:0,compar:1,complet:0,complete_data:0,complete_entri:0,compon:0,composit:0,compositepar:0,comprehens:0,comput:[0,1],condit:0,cone:0,confirm:[0,1],conjunct:0,connect:0,contain:0,content:0,convert:0,coron:[0,1],coronal_mass_eject:[0,1],correctli:2,correspond:0,count:0,coupl:0,cover:0,creat:0,criteria:0,cross:[0,1],curios:0,current:[0,1],daili:0,data:2,data_fil:0,datafram:[0,1,2],dataset:0,date:0,date_max:0,date_min:0,datetim:[0,1],ddthh:0,dec:0,decemb:0,defin:0,definit:[0,1],degre:0,delimit:0,delta:0,delta_v:0,demo:[0,1],demo_kei:0,denot:0,des:[0,2],desc:0,descend:0,descript:[0,1],design:0,desir:0,destin:0,detector:0,determin:0,devic:0,diamet:0,dict:0,dictionari:0,digit:0,dim:0,directli:0,disc:0,discoveri:0,dist:0,dist_max:0,dist_min:0,distanc:0,distinct:[0,1],distribut:0,document:[0,2],doe:1,done:0,download:[0,1],dscovr:0,durat:0,each:0,earlier:0,earlieset:0,earth:2,earth_asset:[0,1],earth_dat:0,earth_imageri:[0,1],easier:2,easili:1,ebi:0,ebi_prid:0,effect:0,either:0,eject:[0,1],empti:0,encod:0,end:0,end_dat:[0,1],endpoint:0,energet:[0,1],energi:0,energy_max:0,energy_min:0,enhanc:[0,1],enlil:1,entir:[0,1],eph_start:0,eph_step:0,eph_stop:0,ephemeri:0,equal:0,equat:0,ero:0,estim:0,european:0,evalu:0,event:[0,1],everi:0,exact:0,exampl:[0,2],exclud:0,exist:0,exoplanet:2,expect:2,explor:[0,1],express:0,facet:1,fals:[0,1],ffield:0,fhaz:0,field:[0,1],file:[0,1],filter:0,find:[0,1],firebal:[0,1,2],first:[0,1],fix:2,flag:0,flare:[0,1],flight:0,folium:1,follow:[0,1],font:0,forecast:0,format:0,four:0,fov_dec:0,fov_diam:0,fov_ra:0,fov_vmag:0,frac:0,from:0,front:0,fulfil:0,full:0,fullnam:0,fvalu:0,gene:[0,1],genelab_search:[0,1],gener:[0,2],geo:0,geomagnet:[0,1],geomagnetic_storm:[0,1],get:0,get_asteroid:[0,1],git:1,github:1,given:0,good:1,gov:0,greater:0,h_max:0,h_min:0,half:0,half_angl:0,happen:1,has:[0,1,2],have:0,health:0,height:0,high:[0,1],higher:1,hight:[0,1],hight_speed_stream:[0,1],histori:1,host:[0,1],hour:[0,1],http:0,human:0,iau:0,identif:0,impact:[0,1,2],impact_e_max:0,impact_e_min:0,implement:2,includ:[0,1],individu:2,infin:0,inform:2,initi:[0,1,2],insensit:0,instead:0,institut:0,instrument:0,intellig:0,interact:[0,1],interest:2,interfac:0,interplantari:0,interplantary_shock:0,interpret:0,invalid:0,ip_min:0,item:[0,1],its:0,jang_et_al_catalog:0,januari:0,jet:0,joul:0,jpl:0,json:[0,2],julian:0,julian_d:[0,1],jupyt:1,kei:[0,1],kepler:[0,1],keyword:0,kiloton:0,kind:0,known:[0,1],laboratori:0,lagrang:0,land:[0,1],lander:0,landsat:0,larg:0,last:[0,1],last_obs_dai:0,last_upd:0,lat:[0,1],later:0,latitud:0,launch:[0,1],lead:0,least:0,less:0,letter:0,librari:1,like:0,limit:[0,1],limit_remain:1,linkag:0,list:[0,2],liver:[0,1],locat:[0,1],lon:[0,1],longer:0,longitud:0,lower:0,lunar:0,machin:0,mag:0,magnetopaus:[0,1],magnetopause_cross:[0,1],magnitud:0,mahli:0,mai:[0,1],maintain:0,make:0,mani:1,manifest:0,map:0,mardi:0,mars_rov:[0,1],mars_weath:[0,1],martian:[0,1],mass:[0,1],massless:0,mast:0,match:0,maximum:0,media:[0,1],media_asset_capt:0,media_asset_manifest:0,media_asset_metadata:0,media_search:[0,1],media_typ:0,messeng:0,metadata:0,metagenom:0,method:1,mg_rast:0,midnight:[0,1],millennium:0,minimum:0,minit:0,minut:0,mission:0,mission_design:0,mjd0:0,model:0,modifi:0,monospac:0,month:0,moon:[0,1],more:[0,1,2],most:[0,1],mous:[0,1],mpc:0,much:0,multipl:0,must:0,n_orbit:0,name:0,nasa:2,nasa_id:0,nasapi:0,nation:0,natur:0,navcam:0,ncbi:0,nea:0,nea_comet:0,need:1,neg:0,neo:0,nhat:[0,2],nih:0,nih_geo_gs:0,nomin:0,non:[0,1],none:0,note:0,notebook:1,now:[0,2],number:[0,1],object:2,objnam:0,obs_cod:0,observ:0,observatori:0,occ:0,omnibu:0,onc:0,one:[0,1],onli:0,oper:[0,2],opportun:0,option:[0,1,2],orbit:0,orbit_class:0,orbit_condition_cod:0,orbit_id:0,order:[0,1],otherwis:0,output:0,over:0,overal:0,p20uvyk:0,page:0,pair:0,palermo:0,pancam:0,panda:[0,1,2],paramet:[0,1,2],pars:0,particl:[0,1],particular:0,pass:[0,1,2],peak:0,per:[0,1],percentag:0,perform:[0,1],period:0,perspect:0,pha:0,photograph:0,picture_of_the_dai:[0,1],pip:1,pixel:0,pl_hostnam:[0,1],pl_kepflag:[0,1],planet:[0,1],pleas:[0,2],plot:[0,1],plot_base64:0,point:0,posit:0,pre:0,prepend:0,previou:[0,1],pride:0,primari:0,print:[0,1],prior:0,probabl:0,project:0,project_id:0,propos:0,propuls:0,proteom:0,provid:[0,1,2],provision:0,ps_min:0,publish:0,python:[0,1],queri:[0,1],quick:1,radiat:[0,1],radiation_belt_enhanc:[0,1],rang:0,rapid:0,rast:0,rather:1,readabl:0,recalcul:0,receiv:[0,1],recent:[0,1],recommend:1,record:0,refer:1,regist:0,rel:0,relat:[0,1],relationship:0,releas:2,remov:0,repres:0,req_alt:0,req_loc:0,req_vel:0,req_vel_comp:0,request:0,requir:0,research:0,resolut:0,resourc:0,respons:0,restrict:0,result:[0,1,2],retriev:[0,1],return_df:[0,1,2],return_format:0,revers:0,rhaz:0,risk:2,rotat:0,row:0,sampl:0,satellit:1,satellite_numb:[0,1],scale:0,scienc:0,scientist:0,score:[0,1],scout:[0,2],search_satellit:0,second:0,secondari:0,secondary_cr:0,section:0,see:[0,1,2],select:[0,1],sentri:[0,2],separ:0,septemb:[0,1],serv:0,set:2,setup:1,seven:[0,1],sg344:0,shock:0,should:[0,2],sigma:0,sign:1,significantli:1,simul:[0,1],sinc:0,sixteen:0,size:0,sky:0,small:0,sol:[0,1],solar:1,solar_energetic_particl:[0,1],solar_flar:[0,1],some:1,sort:0,spacerock:0,span:0,specfic:0,specif:[0,1],specifi:0,speed:[0,1],spirit:0,spk:[0,2],sql:0,srt:0,sstr:0,stai:0,standard:0,star:[0,1],start:[0,1],start_dat:[0,1],step:0,stereo:0,stop:0,store:0,storm:[0,1],str:0,straightforward:2,stream:[0,1],strictli:1,string:0,studi:1,subsystem:0,suit:0,summari:0,sun:0,suppli:0,support:0,swrc:0,swrc_catalog:0,system:2,systemat:0,t_sigma_f:0,tabl:0,take:0,taken:0,target:0,tde:0,team:0,technolog:0,telescop:0,temporari:0,term:[0,1],than:[0,1],thi:0,thirti:[0,1],those:[0,1,2],three:0,time:[0,1],titl:0,tle:1,todai:[0,1],tof_max:0,tof_min:0,tool:0,total:0,transfer:0,transit:0,type:0,typic:1,uncertainti:0,uniqu:0,unit:0,unnumb:0,updat:0,upper:0,url:[0,1],use:1,used:0,using:[0,1],utc:0,v_inf:0,v_inf_max:0,v_inf_min:0,v_rel:0,v_rel_max:0,v_rel_min:0,valu:0,vel_comp:0,vel_max:0,vel_min:0,veloc:0,version:[0,1],videograph:0,view:[0,1],webpag:0,webservic:0,well:0,were:0,when:[0,1,2],where:[0,1],wherea:0,which:0,width:0,window:0,winslow_messenger_icme_catalog:0,within:0,without:0,would:0,wrap:2,wrapper:1,wsa:[0,1],wsa_enlil_simul:[0,1],xml:0,year:[0,1],year_end:0,year_start:0,your:1,yyyi:0,zero:0},titles:["API Reference","Nasapy Documentation","Version History"],titleterms:{Near:0,access:1,api:[0,1],asteroid:1,astronomi:[0,1],audio:1,authent:1,avail:1,bioinformat:1,camera:[0,1],celestrak:1,center:0,cneo:0,collect:1,content:1,curios:1,dai:[0,1],data:[0,1],databas:[0,1],date:1,depth:1,discoveri:1,document:1,donki:[0,1],dscovr:1,dynam:0,earth:[0,1],element:[0,1],epic:[0,1],exampl:1,exoplanet:[0,1],feed:1,from:1,genelab:[0,1],get:1,given:1,gov:1,histori:2,imag:[0,1],imageri:[0,1],inform:[0,1],insight:0,instal:1,julian:1,knowledg:[0,1],landsat:1,latitud:1,librari:0,line:[0,1],longitud:1,mar:[0,1],method:0,modifi:1,nasa:[0,1],nasapi:1,notif:[0,1],object:0,other:[0,1],photo:0,pictur:[0,1],polychromat:[0,1],record:1,refer:0,remain:1,request:1,requir:1,rover:[0,1],satellit:0,search:[0,1],set:[0,1],solar:0,space:[0,1],spirit:1,ssd:0,studi:0,system:0,techport:0,tle:0,tutori:1,two:[0,1],usag:1,version:2,video:0,weather:[0,1],wrapper:0}}) \ No newline at end of file +Search.setIndex({docnames:["api","index","versions"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["api.rst","index.rst","versions.rst"],objects:{"":{Nasa:[0,0,1,""],close_approach:[0,1,1,""],fireballs:[0,1,1,""],julian_date:[0,1,1,""],media_asset_captions:[0,1,1,""],media_asset_manifest:[0,1,1,""],media_asset_metadata:[0,1,1,""],media_search:[0,1,1,""],mission_design:[0,1,1,""],nhats:[0,1,1,""],scout:[0,1,1,""],sentry:[0,1,1,""],tle:[0,1,1,""]},Nasa:{asteroid_feed:[0,1,1,""],coronal_mass_ejection:[0,1,1,""],earth_assets:[0,1,1,""],earth_imagery:[0,1,1,""],epic:[0,1,1,""],exoplanets:[0,1,1,""],genelab_search:[0,1,1,""],geomagnetic_storm:[0,1,1,""],get_asteroids:[0,1,1,""],hight_speed_stream:[0,1,1,""],interplantary_shock:[0,1,1,""],magnetopause_crossing:[0,1,1,""],mars_rover:[0,1,1,""],mars_weather:[0,1,1,""],picture_of_the_day:[0,1,1,""],radiation_belt_enhancement:[0,1,1,""],solar_energetic_particle:[0,1,1,""],solar_flare:[0,1,1,""],techport:[0,1,1,""],wsa_enlil_simulation:[0,1,1,""]}},objnames:{"0":["py","class","Python class"],"1":["py","method","Python method"]},objtypes:{"0":"py:class","1":"py:method"},terms:{"01au":0,"05ld":0,"1000th":1,"100th":0,"2048x2048":0,"2_09":0,"2au":0,"boolean":0,"case":0,"class":[0,1],"default":0,"export":0,"float":0,"function":[0,2],"new":0,"return":[0,1,2],"true":[0,1,2],"while":[0,1],AND:0,Added:2,For:0,NOT:0,Near:2,The:[0,1,2],Using:1,Will:0,abov:1,absolut:0,accept:0,access:[0,2],accur:0,accurate_onli:0,activ:0,add:[0,2],adding:0,advanc:0,after:[0,1],alias:0,aliast:0,align:0,all:[0,1],allow:[1,2],also:[0,1],alt_max:0,alt_min:0,altern:0,although:1,altitud:0,analysi:[0,2],angl:0,ani:[0,1],anl:0,annot:0,anomali:0,apertur:0,api:2,apollo:[0,1],append:0,approach:[0,1],approeach:0,appropri:0,approxim:0,april:[0,1],arc:0,archiv:[0,2],area:0,argonn:0,as11:0,asc:0,ascend:0,aschleg:1,assess:2,asset:[0,1],associ:0,assum:1,asteroid:0,asteroid_fe:[0,1],asteroid_id:[0,1],astronom:0,astrononmi:0,atmospher:0,attribut:1,audio:0,avail:0,badg:1,base:0,been:[0,2],begin:[0,1],begin_d:[0,1],below:2,belt:[0,1],between:0,binder:1,bioinformat:0,biotechnolog:0,bodi:0,both:0,bright:0,brighter:0,bug:2,burn:0,calcul:[0,1],calendar:0,can:[0,1],caption:0,captur:0,cassegrain:0,catalog:0,caus:0,ccd:0,celestrak:0,cere:0,certain:0,cgene:[0,1],charg:0,chemcam:0,choos:1,chosen:0,chronicl:0,chronolog:0,claus:0,click:1,clone:1,close:0,close_approach:[0,2],closest:0,cloud:[0,1],cloud_scor:[0,1],cme:[0,1],cneo:2,code:0,coerc:2,collect:0,color:0,colset:0,column:0,com:1,combin:0,comet:0,comma:0,commun:0,compar:1,complet:0,complete_data:0,complete_entri:0,compon:0,composit:0,compositepar:0,comprehens:0,comput:[0,1],condit:0,cone:0,confirm:[0,1],conjunct:0,connect:0,contain:0,content:0,convert:0,coron:[0,1],coronal_mass_eject:[0,1],correctli:2,correspond:0,count:0,coupl:0,cover:0,creat:0,criteria:0,cross:[0,1],curios:0,current:[0,1],daili:0,data:2,data_fil:0,datafram:[0,1,2],dataset:0,date:0,date_max:0,date_min:0,datetim:[0,1],ddthh:0,dec:0,decemb:0,defin:0,definit:[0,1],degre:0,delimit:0,delta:0,delta_v:0,demo:[0,1],demo_kei:0,denot:0,des:[0,2],desc:0,descend:0,descript:[0,1],design:0,desir:0,destin:0,detector:0,determin:0,devic:0,diamet:0,dict:0,dictionari:0,digit:0,dim:0,directli:0,disc:0,discoveri:0,dist:0,dist_max:0,dist_min:0,distanc:0,distinct:[0,1],distribut:0,document:[0,2],doe:1,done:0,download:[0,1],dscovr:0,durat:0,each:0,earlier:0,earlieset:0,earth:2,earth_asset:[0,1],earth_dat:0,earth_imageri:[0,1],easier:2,easili:1,ebi:0,ebi_prid:0,effect:0,either:0,eject:[0,1],empti:0,encod:0,end:0,end_dat:[0,1],endpoint:0,energet:[0,1],energi:0,energy_max:0,energy_min:0,enhanc:[0,1],enlil:1,entir:[0,1],eph_start:0,eph_step:0,eph_stop:0,ephemeri:0,equal:0,equat:0,ero:0,estim:0,european:0,evalu:0,event:[0,1],everi:0,exact:0,exampl:[0,2],exclud:0,exist:0,exoplanet:2,expect:2,explor:[0,1],express:0,facet:1,fals:[0,1],ffield:0,fhaz:0,field:[0,1],file:[0,1],filter:0,find:[0,1],firebal:[0,1,2],first:[0,1],fix:2,flag:0,flare:[0,1],flight:0,folium:1,follow:[0,1],font:0,forecast:0,format:0,four:0,fov_dec:0,fov_diam:0,fov_ra:0,fov_vmag:0,frac:0,from:0,front:0,fulfil:0,full:0,fullnam:0,fvalu:0,gene:[0,1],genelab_search:[0,1],gener:[0,2],geo:0,geomagnet:[0,1],geomagnetic_storm:[0,1],get:0,get_asteroid:[0,1],git:1,github:1,given:0,good:1,gov:0,greater:0,h_max:0,h_min:0,half:0,half_angl:0,happen:1,has:[0,1,2],have:0,health:0,height:0,high:[0,1],higher:1,hight:[0,1],hight_speed_stream:[0,1],histori:1,host:[0,1],hour:[0,1],http:0,human:0,iau:0,identif:0,impact:[0,1,2],impact_e_max:0,impact_e_min:0,implement:2,includ:[0,1],individu:2,infin:0,inform:2,initi:[0,1,2],insensit:0,instead:0,institut:0,instrument:0,intellig:0,interact:[0,1],interest:2,interfac:0,interplantari:0,interplantary_shock:0,interpret:0,invalid:0,ip_min:0,item:[0,1],its:0,jang_et_al_catalog:0,januari:0,jet:0,joul:0,jpl:0,json:[0,2],julian:0,julian_d:[0,1],jupyt:1,kei:[0,1],kepler:[0,1],keyword:0,kiloton:0,kind:0,known:[0,1],laboratori:0,lagrang:0,land:[0,1],lander:0,landsat:0,larg:0,last:[0,1],last_obs_dai:0,last_upd:0,lat:[0,1],later:0,latitud:0,launch:[0,1],lead:0,least:0,less:0,letter:0,librari:1,like:0,limit:[0,1],limit_remain:1,linkag:0,list:[0,2],liver:[0,1],locat:[0,1],lon:[0,1],longer:0,longitud:0,lower:0,lunar:0,machin:0,mag:0,magnetopaus:[0,1],magnetopause_cross:[0,1],magnitud:0,mahli:0,mai:[0,1],maintain:0,make:0,mani:1,manifest:0,map:0,mardi:0,mars_rov:[0,1],mars_weath:[0,1],martian:[0,1],mass:[0,1],massless:0,mast:0,match:0,maximum:0,media:[0,1],media_asset_capt:0,media_asset_manifest:0,media_asset_metadata:0,media_search:[0,1],media_typ:0,messeng:0,metadata:0,metagenom:0,method:1,mg_rast:0,midnight:[0,1],millennium:0,minimum:0,minit:0,minut:0,mission:0,mission_design:0,mjd0:0,model:0,modifi:0,monospac:0,month:0,moon:[0,1],more:[0,1,2],most:[0,1],mous:[0,1],mpc:0,much:0,multipl:0,must:0,n_orbit:0,name:0,nasa:2,nasa_id:0,nasapi:0,nation:0,natur:0,navcam:0,ncbi:0,nea:0,nea_comet:0,need:1,neg:0,neo:0,nhat:[0,2],nih:0,nih_geo_gs:0,nomin:0,non:[0,1],none:0,note:0,notebook:1,now:[0,2],number:[0,1],object:2,objnam:0,obs_cod:0,observ:0,observatori:0,occ:0,omnibu:0,onc:0,one:[0,1],onli:0,oper:[0,2],opportun:0,option:[0,1,2],orbit:0,orbit_class:0,orbit_condition_cod:0,orbit_id:0,order:[0,1],otherwis:0,output:0,over:0,overal:0,p20uvyk:0,page:0,pair:0,palermo:0,pancam:0,panda:[0,1,2],paramet:[0,1,2],pars:0,particl:[0,1],particular:0,pass:[0,1,2],peak:0,per:[0,1],percentag:0,perform:[0,1],period:0,perspect:0,pha:0,photograph:0,picture_of_the_dai:[0,1],pip:1,pixel:0,pl_hostnam:[0,1],pl_kepflag:[0,1],planet:[0,1],pleas:[0,2],plot:[0,1],plot_base64:0,point:0,posit:0,pre:0,prepend:0,previou:[0,1],pride:0,primari:0,print:[0,1],prior:0,probabl:0,project:0,project_id:0,propos:0,propuls:0,proteom:0,provid:[0,1,2],provision:0,ps_min:0,publish:0,python:[0,1],queri:[0,1],quick:1,radiat:[0,1],radiation_belt_enhanc:[0,1],rang:0,rapid:0,rast:0,rather:1,readabl:0,recalcul:0,receiv:[0,1],recent:[0,1],recommend:1,record:0,refer:1,regist:0,rel:0,relat:[0,1],relationship:0,releas:2,remov:0,repres:0,req_alt:0,req_loc:0,req_vel:0,req_vel_comp:0,request:0,requir:0,research:0,resolut:0,resourc:0,respons:0,restrict:0,result:[0,1,2],retriev:[0,1],return_df:[0,1,2],return_format:0,revers:0,rhaz:0,risk:2,rotat:0,row:0,sampl:0,satellit:1,satellite_numb:[0,1],scale:0,scienc:0,scientist:0,score:[0,1],scout:[0,2],search_satellit:0,second:0,secondari:0,secondary_cr:0,section:0,see:[0,1,2],select:[0,1],sentri:[0,2],separ:0,septemb:[0,1],serv:0,set:2,setup:1,seven:[0,1],sg344:0,shock:0,should:[0,2],sigma:0,sign:1,significantli:1,simul:[0,1],sinc:0,sixteen:0,size:0,sky:0,small:0,sol:[0,1],solar:1,solar_energetic_particl:[0,1],solar_flar:[0,1],some:1,sort:0,spacerock:0,span:0,specfic:0,specif:[0,1],specifi:[0,2],speed:[0,1],spirit:0,spk:[0,2],sql:0,srt:0,sstr:0,stai:0,standard:0,star:[0,1],start:[0,1],start_dat:[0,1],step:0,stereo:0,stop:0,store:0,storm:[0,1],str:0,straightforward:2,stream:[0,1],strictli:1,string:0,studi:1,subsystem:0,suit:0,summari:[0,2],sun:0,suppli:0,support:0,swrc:0,swrc_catalog:0,system:2,systemat:0,t_sigma_f:0,tabl:0,take:0,taken:0,target:0,tde:0,team:0,technolog:0,telescop:0,temporari:0,term:[0,1],than:[0,1],thi:0,thirti:[0,1],those:[0,1,2],three:0,time:[0,1],titl:0,tle:1,todai:[0,1],tof_max:0,tof_min:0,tool:0,total:0,transfer:0,transit:0,type:0,typic:1,uncertainti:0,uniqu:0,unit:0,unnumb:0,updat:0,upper:0,url:[0,1],use:1,used:0,using:[0,1],utc:0,v_inf:0,v_inf_max:0,v_inf_min:0,v_rel:0,v_rel_max:0,v_rel_min:0,valu:0,vel_comp:0,vel_max:0,vel_min:0,veloc:0,version:[0,1],videograph:0,view:[0,1],webpag:0,webservic:0,well:0,were:0,when:[0,1,2],where:[0,1],wherea:0,which:0,width:0,window:0,winslow_messenger_icme_catalog:0,within:0,without:0,would:0,wrap:2,wrapper:1,wsa:[0,1],wsa_enlil_simul:[0,1],xml:0,year:[0,1],year_end:0,year_start:0,your:1,yyyi:0,zero:0},titles:["API Reference","Nasapy Documentation","Version History"],titleterms:{Near:0,access:1,api:[0,1],asteroid:1,astronomi:[0,1],audio:1,authent:1,avail:1,bioinformat:1,camera:[0,1],celestrak:1,center:0,cneo:0,collect:1,content:1,curios:1,dai:[0,1],data:[0,1],databas:[0,1],date:1,depth:1,discoveri:1,document:1,donki:[0,1],dscovr:1,dynam:0,earth:[0,1],element:[0,1],epic:[0,1],exampl:1,exoplanet:[0,1],feed:1,from:1,genelab:[0,1],get:1,given:1,gov:1,histori:2,imag:[0,1],imageri:[0,1],inform:[0,1],insight:0,instal:1,julian:1,knowledg:[0,1],landsat:1,latitud:1,librari:0,line:[0,1],longitud:1,mar:[0,1],method:0,modifi:1,nasa:[0,1],nasapi:1,notif:[0,1],object:0,other:[0,1],photo:0,pictur:[0,1],polychromat:[0,1],record:1,refer:0,remain:1,request:1,requir:1,rover:[0,1],satellit:0,search:[0,1],set:[0,1],solar:0,space:[0,1],spirit:1,ssd:0,studi:0,system:0,techport:0,tle:0,tutori:1,two:[0,1],usag:1,version:2,video:0,weather:[0,1],wrapper:0}}) \ No newline at end of file diff --git a/docs/build/html/versions.html b/docs/build/html/versions.html index a7d4a11..c88fa4a 100644 --- a/docs/build/html/versions.html +++ b/docs/build/html/versions.html @@ -88,6 +88,7 @@
  • API Reference
  • Version History
      +
    • Version 0.2.6
    • Version 0.2.5
    • Version 0.2.4
    • Version 0.2.3
    • @@ -162,6 +163,12 @@

      Version History

      +
      +

      Version 0.2.6

      +
        +
      • sentry function now returns a summary object when return_df=True and a des or spk parameter are not specified.

      • +
      +

      Version 0.2.5

        diff --git a/docs/source/versions.rst b/docs/source/versions.rst index c747487..6b47987 100644 --- a/docs/source/versions.rst +++ b/docs/source/versions.rst @@ -4,6 +4,11 @@ Version History =============== +Version 0.2.6 +------------- + +- :code:`sentry` function now returns a summary object when :code:`return_df=True` and a :code:`des` or :code:`spk` parameter are not specified. + Version 0.2.5 ------------- diff --git a/notebooks/Analyzing the Next Decade of Earth Close-Approaching Objects with nasapy.ipynb b/notebooks/Analyzing the Next Decade of Earth Close-Approaching Objects with nasapy.ipynb new file mode 100644 index 0000000..cd929da --- /dev/null +++ b/notebooks/Analyzing the Next Decade of Earth Close-Approaching Objects with nasapy.ipynb @@ -0,0 +1,410 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this example, we will walk through a possible use case of the `nasapy` library by extracting the next 10 years of close-approaching objects to Earth identified by NASA's Jet Propulsion Laboratory's Small-Body Database.\n", + "\n", + "Before diving in, import the packages we will use to extract and analyze the data. The data analysis library [pandas](https://pandas.pydata.org/) will be used to wrangle the data, while [seaborn](https://seaborn.pydata.org/) is used for plotting the data. The magic command [`%matplotlib inline`](https://ipython.readthedocs.io/en/stable/interactive/plotting.html#id1) is loaded to display the generated plots." + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "import nasapy\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `close_approach` method of the `nasapy` library allows one to access the JPL SBDB to extract data related to known meteoroids and asteroids within proximity to Earth. Setting the parameter `return_df=True` automatically coerces the returned JSON data into a pandas DataFrame. After extracting the data, we transform several of the variables into `float` type." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "ca = nasapy.close_approach(date_min='2020-01-01', date_max='2029-12-31', return_df=True)\n", + "\n", + "ca['dist'] = ca['dist'].astype(float)\n", + "ca['dist_min'] = ca['dist_min'].astype(float)\n", + "ca['dist_max'] = ca['dist_max'].astype(float)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `dist` column of the returned data describes the nominal approach distance of the object in astronomical units (AU). An [astronomical unit](https://en.wikipedia.org/wiki/Astronomical_unit), or AU is roughly the distance of the Earth to the Sun, approximately 92,955,807 miles or 149,598,000 kilometers. Using the [`.describe`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.describe.html) method, we can display descriptive statistics that summarize the data." + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "count 724.000000\n", + "mean 0.030809\n", + "std 0.012749\n", + "min 0.000252\n", + "25% 0.021632\n", + "50% 0.031987\n", + "75% 0.041480\n", + "max 0.049983\n", + "Name: dist, dtype: float64" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ca['dist'].describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see the mean approach distance in AUs is approximately 0.031, which we can transform into miles: " + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2863896.3584931544" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "au_miles = 92955807.26743\n", + "ca['dist'].describe()['mean'] * au_miles" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Thus the average distance of the approaching objects to Earth over the next decade is about 2.86 million miles, which is more than 10 times the distance from the Earth to the Moon (238,900 miles).\n", + "\n", + "What about the closest approaching object to Earth within the next ten years? Using the [`.loc`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.html) method, we can find the object with the closest approaching distance." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
        \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
        desorbit_idjdcddistdist_mindist_maxv_relv_inft_sigma_fh
        673999421992462240.4070322882029-Apr-13 21:460.0002520.0002480.0002577.433322616722955.84141384414201< 00:0119.7
        \n", + "
        " + ], + "text/plain": [ + " des orbit_id jd cd dist dist_min \\\n", + "673 99942 199 2462240.407032288 2029-Apr-13 21:46 0.000252 0.000248 \n", + "\n", + " dist_max v_rel v_inf t_sigma_f h \n", + "673 0.000257 7.43332261672295 5.84141384414201 < 00:01 19.7 " + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ca.loc[ca['dist'] == ca['dist'].min()]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The closest approaching known object is expected to approach Earth near the end of the decade, on April 13, 2029, at a distance of 0.00023 AU. Transforming the astronomical units into miles, we can get a better sense of the approach distance of the object." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Distance: 23440.92769543333\n", + "Minimum Distance: 644.2481158331191\n", + "Maximum Distance: 23874.510393069424\n" + ] + } + ], + "source": [ + "print('Distance: ' + str(au_miles * ca['dist'].min()))\n", + "print('Minimum Distance: ' + str(au_miles * ca['dist_min'].min()))\n", + "print('Maximum Distance: ' + str(au_miles * ca['dist_max'].min()))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Oh my! It looks like this object will approach Earth relatively close, at about 23,000 miles, in a range of [644, 23874] miles. For comparison, the maximum distance is about 1/10 of the distance from the Earth to the Moon.\n", + "\n", + "Let's get a sense of the number of approaching objects to Earth by year over the next decade. First, we extract the year of the approach date using a combination of [`.apply`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.apply.html) and [`to_datetime`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.to_datetime.html) into a new column `approach_year`." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "ca['approach_year'] = ca['cd'].apply(lambda x: pd.to_datetime(x).year)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using the [`.groupby`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.groupby.html) method, we create a new DataFrame with the aggregated count of approaching objects for each year." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "source": [ + "approaches_by_year = ca.groupby('approach_year').count().reset_index()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use seaborn's [barplot](https://seaborn.pydata.org/generated/seaborn.barplot.html) function to plot the count of approaching objects for each year." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
        " + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10, 6))\n", + "p = sns.barplot(x='approach_year', y='h', data=approaches_by_year)\n", + "plt.axhline(approaches_by_year['h'].mean(), color='r', linestyle='--')\n", + "p = p.set_xticklabels(approaches_by_year['approach_year'], rotation=45, ha='right', fontsize=12)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Interestingly, this year (2020) will have the most activity, and then it will somewhat decline over the next few years until the end of the decade. On average, there are a little less than 80 Earth approaching objects each year of the decade.\n", + "\n", + "As the last example, let's plot the distribution of the approaching object distances using seaborn's [`.kdeplot`](https://seaborn.pydata.org/generated/seaborn.kdeplot.html) which creates a kernel destiny plot. We can also add a mean line of the distances similar to how we did above." + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
        " + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(14, 6))\n", + "plt.axvline(ca['dist'].astype(float).mean(), color='r', linestyle='--')\n", + "sns.kdeplot(ca['dist'], shade=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we noted above, the mean approach distance is a little more than 0.03, which we can see in the density plot above. Lastly, we can plot a normal distribution over the distribution of the distances using [numpy.random.normal](https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.random.normal.html) to get a quick comparison of the actual distribution compared to a normal one." + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
        " + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(14, 6))\n", + "\n", + "x = np.random.normal(size=len(ca['dist']), \n", + " scale=ca['dist'].std(), \n", + " loc=ca['dist'].mean())\n", + "\n", + "plt.axvline(ca['dist'].mean(), color='r', linestyle='--')\n", + "\n", + "sns.kdeplot(ca['dist'], shade=True)\n", + "sns.kdeplot(x, shade=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see the distribution of the distances is not quite normal. There are definitely much more sophisticated techniques for analyzing the distribution of a dataset, but that will be saved for a possible future exercise." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebooks/Plot Earth Fireball Impacts with nasapy, pandas and folium.ipynb b/notebooks/Plot Earth Fireball Impacts with nasapy, pandas and folium.ipynb index cb88f80..d857fa7 100644 --- a/notebooks/Plot Earth Fireball Impacts with nasapy, pandas and folium.ipynb +++ b/notebooks/Plot Earth Fireball Impacts with nasapy, pandas and folium.ipynb @@ -17,7 +17,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ diff --git a/setup.py b/setup.py index 5ef6445..bcce1fd 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ setup( name='nasapy', - version='0.2.5', + version='0.2.6', author='Aaron Schlegel', author_email='aaron@aaronschlegel.me', description='Python wrapper for the NASA API',