Art and Web Design
Contact me for information about rates and availability.
This page contains all articles published by Space Science Blog, regardless of topic, with the latest or newest articles at the top. Continue scrolling down for more. Or search by topic by clicking on the categories linked above (Conspiracies, Game Design, Science and Technology, etc.).
Web Scraping Current Two-Line Elements
For this tutorial we will learn how to use Python to scrape the web for the most current two-line element sets for various orbiting spacecraft. A two-line element is a data format that encodes a list of orbital elements of objects orbiting the Earth for any given moment in time. TLEs are commonly used as input for projecting the future orbital tracks. We will use Python to scrape our NORAD TLEs from www.celestrak.com. As we will learn, fetching data from the web is pretty easy.
For this tutorial we will be using the Python programming language along with the BeautifulSoup and Requests libraries and the html5lib parser to scrape the web for the current TLE for the International Space Station. BeautifulSoup will be used to get data out of the HTML file that contains the two-line elements. It does this by building a tree out of the various elements on a web page and makes it easy to access these elements. The requests library makes it easier to handle HTML requests and we use the html5lib parser as it is more linient when dealing with poorly formatted HTML.
Rocket Propulsion Using Python
In this tutorial we will focus on the fundamental elements of various rocket propulsion systems and learn how we can use the Python programming language to compute these elements. We will focus on the Ariane 5, Atlas V and Saturn V rocket engines. In our analysis we will consider both the liquid propellant rocket engines and solid propellant rocket boosters used in each of the rockets listed above.
We will begin with a brief discussion on the fundamental elements of rocket propulsion and then we will attempt to calculate these elements using Python. For starters, rocket propulsion is a class of jet propulsion that produces thrust by ejecting liquid or solid matter stored within the rocket, which is called the propellant.
Rocket Comparison Using Python
In this tutorial, we will take a closer look at several past and present chemical rockets, using the Python programming language and the Matplotlib library to visualize the differences in size, mass and thrust of each rocket. We will compare the Ariane 5, Atlas V, Black Brant IV, Delta II, Delta IV, Falcon 9 and Saturn V rockets.
Before we begin programming we must collect data on each rocket, and for this purpose we will use Wikipedia to gather the necessary information. When measuring height and diameter, we will use the metric system as opposed to the imperial system (1 ft = 0.3048 m). Thrust will be measured in lbf (please note that in some cases we may need to convert from Newtons (N) or kilo Newtons (kN) to lbf (1.0 N = 0.2248089 lbf). Also note that we will only be using the thrust of the first stage rocket engine at sea level.
How to Calculate Orbital Elements of a Spacecraft Using Python
In this tutorial, I will introduce you to some basic rocket science equations and then show you how to calculate them using the Python programming language. In this tutorial I will be focusing on the International Space Station for our calculations. The results of our calculations can then be compared to those provided by the European Space Agency, NASA and the Heaven's Above websites.
The International Space Station, or ISS, is the largest orbiting space station ever built by man. It is the result of the combined efforts of several nations, over the course of several years to construct. It was initially launched into orbit on 20 November 1998. It orbits the Earth at an altitude of 370-460 km. It is approximately 109 meters wide, 74 meters long and 45 meters high, with a mass of approximately 925,335 pounds (419,725 kilograms). The ISS has a habitable volume of about 13,696 cubic feet (388 cubic meters), not including visiting vehicles. It has an orbital inclination of 51.6° and an orbital velocity of 7.6-7.7 km/s (around 27 500 km/h).
Python Maze Explorer
In this tutorial we will explore the world of artificial intelligence programming using the popular Python programing language. This tutorial will show you how to use the popular A* (astar) pathfinding algorithm to naviate your AI through a maze using greedy searching. For this tutorial, we will need to install the SimpleAI package, which we will use to solve a simple maze, which we will build ourselves. SimpleAI contains various routines which may be useful for building solutions using heuristic seach techniques.
SimpleAI can be downloaded from https://github.com/simpleai-team/simpleai. Before we can use this library, we need to make a few changes to the source code in order for it to work in Python3. You will need to download a file from Packt Publishing called simpleai.zip and unzip the contents into the simpleai folder on your computer's hard drive.
The Solar System
Since the dawn of mankind we have look towards the stars with awe and wonder. Over the centuries, astronomy-priests have identified and tracked various celestial bodies that surround our world in a better attempt to understand the universe. Exploring our solar system gives us insight into the formation of our own planet and a possible view into the possible future of our planet. Everything from the sun, asteroids and comets, to dwarf planets, terrestrial planets and gas giants, have been explored and charted.
Before we begin coding our script, we need to collect the necessary planetary data. Most of the following data was obtained using the NASA Planetary Fact Sheet.
In this multi-part tutorial we will use Python and Matplotlib to calculate various atmospheric and aerodynamic variables that an object flying through Earth's atmosphere at various altitudes and velocities will encounter. Before we get into the Python code, we will take a closer look at the different layers of Earth's atmosphere.
With most of Earth's atmospheric gases located in the lowest layer of the atmosphere, the troposphere, the air becomes more dense as an object flies (or falls) at lower altitudes. Atmospheric gases are affected by incident solar radiation coming in from above and terrestrial drivers, such as hurricanes and tropical storms, forest fires, volcanic erruptions and nuclear detonations, coming up from below. It is within the lowest atmospheric layer, the troposphere, that most of life on earth can be found. Therefore, we will pay particular attention to this layer.
Severe Weather Tracker
Incoming solar radiation enters the Earth’s atmosphere, where some of this energy is absorbed by atmospheric gases, water vapor and dust particles. Some of this energy is scattered by the atmosphere and a portion is reflected by clouds in the troposphere. Energy that reaches Earth’s surface is absorbed by the ground, water and other surface features or reflected back towards space.
Earth’s weather is created by the interaction between incident solar energy and water vapor suspended in the atmosphere, although the air is not significantly heated by the sun directly. Earth’s surface absorbs most of this heat and the lowest layer of the atmosphere is then warmed from being in contact with the Earth’s surface through a process of heat exchange known as conduction. Warm air gradually spreads upwards and outwards as it cools, creating a movement of air in the process. This constant movement of air from high- to low-pressure areas, combined with the effects caused by Earth’s spinning, forces air to move counterclockwise and into low-pressure areas, while moving clockwise and out of high-pressure areas.
Sunspots are about 4000 K (compared to the normal 6000 K temperatures of the sun’s surface) which causes sunspots to appear dimmer than the surrounding photosphere. Sunspots show where the sun’s magnetic field is strongest. For example, the average magnetic field on the sun’s surface is 1 gauss, but in a sunspot, the magnetic field can be over 3,000 gauss. The higher magnetic fields within these areas keep the sunspots cool and therefore dark.
While most sunspots disappear with a day or two, some sunspots can be identified and tracked for weeks or even months at a time. The apparent movement of sunspots across the Sun’s surface indicates that the solar surface is rotating anticlockwise.
Effects of Gravity at Altitude
The planetary weight calculator allows you to calculate your weight while on the planet's surface and assumes that the surface of the planet is of uniform distance from its center. These equations therefore will not accurately reflect the weight of objects in space around Earth, or other planetary body.
Gravity is affected by only two variables and one constant. The universal gravitational constant (6.67408 * 10-11) cannot be changed and the planet's mass (5.98 * 1024) stays pretty much the same, therefore only your distance from the center of the Earth can be changed. Earth's surface is approximately 6378 * 102 km in altitude. When calculating the altitude of spacecraft and satellites, don't forget to add this distance to the distance of the spacecraft above the Earth's surface.
ge = G * Me / d2
In this tutorial we will explore the gravitational forces of the Sun and planets using Python and then learn how to plot these features for comparison using Matplotlib. For this tutorial we will be storing the mass and radius of each planet as a list of intergers and then calculating the gravitational acceleration (gp) and gravitational parameters (μ) for each planet.
Planetary Weight Calculator
This simple Python tutorial will show you how to build your own planetary weight calculator, will allow you to quickly calculate the weight of any object on each planet, the sun and the moon. To calculate your weight on each planet, use the gravitational acceleration vector for each planetary body, which is the product of the Universal Gravitational Constant (G) multiplied by the mass (m) of each planetary body (p) divided by the radius (r) of each body, squared.
gp = G * (mp/rp2)
Raspberry Pi Weather Station
In this multi-part tutorial we will learn how to create an Astro Pi using the Raspberry Pi and Sense HAT. The Sense HAT has multiple integrted circuit-based sensors, which can be used to "sense" pressure, humidity, temperature, speed and Earth's magnetic field. The Astro Pi is currently being used to perform a variety of science experiements aboard the International Space Station (ISS).
Alternative and Augmentative Communication
This article will show you how to transform your laptop into the ultimate alternative and augmentative communication device. This project requires a webcam and two downloads: Camera Mouse, which uses the webcam to track your eyes, and OptiKey, an optical keyboard that can be used to spell out words and phrases.
DIY - Tabletop Miniatures and Props
Follow along as we build various miniatures and set pieces for the Chaos Realms table-top role playing game. Using little more than cardboard, modelling clay, foam, random parts from models found at your nearest hobby/crafts store, along with rand debris found around your house, we will build props and set pieces that can be used for any modern, science fiction or post-apocalyptic table-top game.
If you are a seasoned game master looking to spruce up your games, or an amature game designer looking to build your own set pieces for tabletop role-playing games...look no further. These game-design tutorials will guide you through the creative process of turning random pieces of cardboard, junk, lots of glue, every day items and layers upon layers of paint into fantastic minitaure set pieces.
As an additional bonus, I offer tips and strategies on what types of things to be on the lookout for when collecting bits and pieces to add to your set piece; from sand and gravel, to small twigs and sticks.
Modern and Apocalyptic Miniatures (28mm)
When it comes to playing games like D&D, Pathfinder, Warhammer 40K, or other tabletop RPGs, having an assortment of miniatures goes a long way in breathing life into a scene. Miniature figurines and set pieces allow players to visualize the scenes and play an integral role in combat.
Indie tabletop game designers and crafty game masters hosting tabletop role-playing games set in a modern, science fiction or post-apocalyptic settings may enjoy spicing things up a bit by adding the following miniatures to their games.
Apocalypse Survivors: The Men and The Women, by Wargames Factory, offers a variety of armed civilians from men and women to children. US Soldiers from Mars Attacks, The Miniatures Game, provides a small army of elite military forces, which can also be used as corporate mercenaries or armed militias. Additional miniatures have been repurposed from the Call of Cthulhu boardgames by Richard Launius and Kevin Wilson, and Dark Heaven Bones by Reaper Miniatures.
Environmental Scanner - Arduino-based Sensor Array
In this tutorial, you will learn how to build and program a simple environment scanner, which can read the input from a variety of electronic sensors and display the results on a locally-hosted webpage, which can be accessed by any internet-enabled device connected to the same network as the scanner.
The Environmental Scanner project began as a simple Arduino-based, environmental monitoring and alert system. Featuring and array of electronic sensors from Adafruit and SparkFun, an Arduino Uno and an Ethernet shield; the Environmental Scanner will host a webpage containing sensor readings and alerts. This webpage will display the current sensor inputs, which will refresh every few seconds, and will send an alert when sensor levels exceed certain predefined thresholds.
Facial Recognition Using Python and a Webcam
In this tutorial we will explore basic machine learning concepts by developing a simple facial recognition program in under 22 lines of code, using a webcam, Python 2.7, and the open source library OpenCV v2. OpenCV is a popular library for computer vision, which was originally written in C/C++, but now provides bindings for Python.
This tutorial is based on Shantnu Tiwari's python blog, which can be found at https://realpython.com/blog/python/face-detection-in-python-using-a-webcam/.