From 2c5bd71b0211976c1477d76da368f7af84f2a446 Mon Sep 17 00:00:00 2001 From: adityaasopa Date: Thu, 12 Mar 2026 15:17:08 +0530 Subject: [PATCH 1/7] Normalize data schemas, enrich datasets, and fix API handler quality MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The spacecraft_missions data had deeply inconsistent schemas — mass appeared as 'weight', 'lift-off_mass', 'spacecraft_mass', 'mass_at_lift-off' and 5 other variants; dates ranged from 'April 19, 1975' to '22 October 2008' to '26-05-1999' across 15+ formats; KALPANA-1 had mission_life stored in the 'mission' field as '7 Years'; and TES appeared as a duplicate entry. spacecrafts.json had only id+name for 113 records. launchers.json had only id for 81 records. customer_satellites.json mixed 'GERMANY' with 'Germany' and 'UK' with 'UNITED KINGDOM'. This commit introduces scripts/normalize_data.py — an idempotent pipeline that parses all date formats to ISO 8601, extracts numeric mass_kg and power_watts from free-text fields (handling edge cases like '15 Sq.m Solar Array generating 1360W'), classifies orbits (LEO/SSO/GEO/Lunar/Failed), infers mission status from launch date + mission life, and normalizes country names. The scraper was re-run against isro.gov.in and the fresh data is merged with existing records — no data is lost, only enriched. All 5 data files now have consistent, documented schemas. spacecrafts are enriched with launch date, vehicle, orbit type, and status from missions. Launchers are classified into 8 vehicle families. All API endpoints remain backward-compatible — same URLs, same structure, just cleaner data. API handlers: removed unused 'fs' imports, fixed misleading variable names (customer_satellites.js loaded data into a var called 'launchers'), added Content-Type: application/json headers, and sanitized error responses. Root endpoint now returns a JSON directory of all available endpoints. --- README.md | 99 +- api/centres.js | 17 +- api/customer_satellites.js | 17 +- api/index.js | 25 +- api/launchers.js | 15 +- api/spacecraft_missions.js | 21 +- api/spacecrafts.js | 15 +- data/centres.json | 534 ++-- data/customer_satellites.json | 1055 ++++---- data/launchers.json | 684 ++++-- data/spacecraft_missions.json | 2188 +++++++++-------- data/spacecrafts.json | 1588 ++++++++---- index.html | 15 +- .../isro_spacecrafts_scraper_output.json | 822 +++++++ isro_scrape/scraping.ipynb | 1606 ++++++------ scripts/normalize_data.py | 797 ++++++ 16 files changed, 6091 insertions(+), 3407 deletions(-) create mode 100644 isro_scrape/isro_spacecrafts_scraper_output.json create mode 100644 scripts/normalize_data.py diff --git a/README.md b/README.md index 27fcfcf..a61863e 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,93 @@ -# ISRO 🚀 API +# ISRO API -Open Source API for Launched Spacecrafts & Rockets data of ISRO +Open Source API for ISRO spacecraft, launcher, and mission data. -## API End-Points -Spacecraft: [/api/spacecrafts](https://isro.vercel.app/api/spacecrafts) -- Launchers: [/api/launchers](https://isro.vercel.app/api/launchers) -- Customer Satellites: [/api/customer_satellites](https://isro.vercel.app/api/customer_satellites) -- Centres: [/api/centres](https://isro.vercel.app/api/centres) -### Mission End-Points -- Spacecraft Missions: [/api/spacecraft_missions](https://isro.vercel.app/api/spacecraft_missions) +**Live:** [isro.vercel.app](https://isro.vercel.app) +## API Endpoints + +| Endpoint | Description | Records | +|----------|-------------|---------| +| [`/api/spacecrafts`](https://isro.vercel.app/api/spacecrafts) | All ISRO spacecrafts with launch date, vehicle, orbit type, and status | 113 | +| [`/api/launchers`](https://isro.vercel.app/api/launchers) | Launch vehicles classified by family (SLV, ASLV, PSLV, GSLV, LVM-3) | 81 | +| [`/api/customer_satellites`](https://isro.vercel.app/api/customer_satellites) | Foreign satellites launched by ISRO, with ISO dates and normalized countries | 75 | +| [`/api/centres`](https://isro.vercel.app/api/centres) | ISRO research centres across India | 44 | +| [`/api/spacecraft_missions`](https://isro.vercel.app/api/spacecraft_missions) | Detailed mission data: mass, power, orbit, payloads, stabilization, status | 65 | + +## Response Format + +All endpoints return JSON with a consistent wrapper: + +```json +{ + "spacecrafts": [ + { + "id": 1, + "name": "Aryabhata", + "launch_date": "1975-04-19", + "launch_vehicle": "C-1 Intercosmos", + "mission_type": "Scientific/ Experimental", + "orbit_type": null, + "mass_kg": 360.0, + "status": "decommissioned" + } + ] +} +``` + +### Spacecraft Missions Schema + +| Field | Type | Description | +|-------|------|-------------| +| `id` | number | Sequential ID | +| `name` | string | Spacecraft name | +| `mission_type` | string\|null | Mission purpose (Communication, Remote Sensing, etc.) | +| `launch_date` | string\|null | ISO 8601 date (YYYY-MM-DD) | +| `launch_site` | string\|null | Launch facility | +| `launch_vehicle` | string\|null | Rocket used | +| `orbit` | string\|null | Orbit description | +| `orbit_type` | string\|null | Classified: LEO, SSO, GEO, Lunar, Interplanetary, Failed | +| `altitude_km` | number\|null | Orbital altitude in km | +| `inclination_deg` | number\|null | Orbital inclination in degrees | +| `mass_kg` | number\|null | Lift-off mass in kg | +| `power_watts` | number\|null | Onboard power in watts | +| `mission_life` | string\|null | Designed mission lifetime | +| `status` | string | active, decommissioned, failed, or unknown | +| `payloads` | string\|null | Onboard instruments/payloads | +| `stabilization` | string\|null | Attitude control system | +| `propulsion` | string\|null | Propulsion system | + +## Data Normalization + +Raw data is scraped from [isro.gov.in](https://www.isro.gov.in) and normalized using `scripts/normalize_data.py`. The pipeline: + +- Parses 15+ date formats into ISO 8601 +- Resolves 9+ field name variants for mass (e.g., `weight`, `lift-off_mass`, `spacecraft_mass`) into `mass_kg` +- Extracts wattage from complex power strings (e.g., "15 Sq.m Solar Array generating 1360W" -> 1360) +- Classifies orbit types (LEO, SSO, GEO, Lunar, etc.) +- Infers mission status (active/decommissioned/failed) from launch date + mission life +- Normalizes country names and fixes field casing inconsistencies +- Merges fresh scraper output with existing data (idempotent) + +```bash +# Run the normalization pipeline +python scripts/normalize_data.py +``` + +## Tech Stack + +- **Runtime:** Node.js (Vercel Serverless Functions) +- **Data:** Static JSON, zero npm dependencies +- **Data Pipeline:** Python 3 (BeautifulSoup for scraping, custom normalization) +- **Hosting:** [Vercel](https://vercel.com) + +## Contributing + +1. Fork the repository +2. To update data: edit files in `data/` or run the scraper and normalization pipeline +3. To add endpoints: create a new file in `api/` (Vercel auto-routes it) +4. Submit a pull request + +## License + +MIT diff --git a/api/centres.js b/api/centres.js index ebefec3..75f23c4 100644 --- a/api/centres.js +++ b/api/centres.js @@ -1,20 +1,11 @@ -const fs = require("fs"); +const centres = require("../data/centres.json"); -// Load the centers data from a JSON file -let centers = require("../data/centres.json"); - -// Export an async function to handle requests module.exports = async (req, res) => { try { - // Send the centers data as the response - res.send(centers); + res.setHeader("Content-Type", "application/json"); + res.send(centres); } catch (error) { - // If there is an error, send a 500 status code and the error message and response res.status(500); - const response = error.response || {}; - res.send({ - message: error.message, - response, - }); + res.send({ error: error.message }); } }; diff --git a/api/customer_satellites.js b/api/customer_satellites.js index e99808a..a064224 100644 --- a/api/customer_satellites.js +++ b/api/customer_satellites.js @@ -1,20 +1,11 @@ -const fs = require("fs"); +const customerSatellites = require("../data/customer_satellites.json"); -// Load the customer satellite data from a JSON file -let launchers = require("../data/customer_satellites.json"); - -// Export an async function to handle requests module.exports = async (req, res) => { try { - // Send the customer satellite data as the response - res.send(launchers); + res.setHeader("Content-Type", "application/json"); + res.send(customerSatellites); } catch (error) { - // If there is an error, send a 500 status code and the error message and response res.status(500); - const response = error.response || {}; - res.send({ - message: error.message, - response, - }); + res.send({ error: error.message }); } }; diff --git a/api/index.js b/api/index.js index 7a627b0..3af97d3 100644 --- a/api/index.js +++ b/api/index.js @@ -1,15 +1,22 @@ -// Export an async function to handle requests +const endpoints = { + spacecrafts: "/api/spacecrafts", + launchers: "/api/launchers", + customer_satellites: "/api/customer_satellites", + centres: "/api/centres", + spacecraft_missions: "/api/spacecraft_missions", +}; + module.exports = async (req, res) => { try { - // Send a message as the response - res.send("
 ISRO API v0.1.0 
"); - } catch (error) { - // If there is an error, send a 500 status code and the error message and response - res.status(500); - const response = error.response || {}; + res.setHeader("Content-Type", "application/json"); res.send({ - message: error.message, - response, + name: "ISRO API", + version: "1.0.0", + description: "Open Source API for ISRO spacecraft, launcher, and mission data", + endpoints, }); + } catch (error) { + res.status(500); + res.send({ error: error.message }); } }; diff --git a/api/launchers.js b/api/launchers.js index 4f4ae70..afe22f6 100644 --- a/api/launchers.js +++ b/api/launchers.js @@ -1,20 +1,11 @@ -const fs = require("fs"); +const launchers = require("../data/launchers.json"); -// Load the data for the available launchers from a JSON file -let launchers = require("../data/launchers.json"); - -// Export an async function to handle requests for the list of available launchers module.exports = async (req, res) => { try { - // Send the list of available launchers as the response + res.setHeader("Content-Type", "application/json"); res.send(launchers); } catch (error) { - // If there is an error, send a 500 status code and the error message and response res.status(500); - const response = error.response || {}; - res.send({ - message: error.message, - response, - }); + res.send({ error: error.message }); } }; diff --git a/api/spacecraft_missions.js b/api/spacecraft_missions.js index 22ce295..ada0f50 100644 --- a/api/spacecraft_missions.js +++ b/api/spacecraft_missions.js @@ -1,16 +1,11 @@ -const fs = require("fs"); - -let launchers = require("../data/spacecraft_missions.json"); +const spacecraftMissions = require("../data/spacecraft_missions.json"); module.exports = async (req, res) => { - try { - res.send(launchers); - } catch (error) { - res.status(500); - const response = error.response || {}; - res.send({ - message: error.message, - response, - }); - } + try { + res.setHeader("Content-Type", "application/json"); + res.send(spacecraftMissions); + } catch (error) { + res.status(500); + res.send({ error: error.message }); + } }; diff --git a/api/spacecrafts.js b/api/spacecrafts.js index d7393f9..18141ce 100644 --- a/api/spacecrafts.js +++ b/api/spacecrafts.js @@ -1,20 +1,11 @@ -const fs = require("fs"); +const spacecrafts = require("../data/spacecrafts.json"); -// Load the data for the available spacecrafts from a JSON file -let spacecrafts = require("../data/spacecrafts.json"); - -// Export an async function to handle requests for the list of available spacecrafts module.exports = async (req, res) => { try { - // Send the list of available spacecrafts as the response + res.setHeader("Content-Type", "application/json"); res.send(spacecrafts); } catch (error) { - // If there is an error, send a 500 status code and the error message and response res.status(500); - const response = error.response || {}; - res.send({ - message: error.message, - response, - }); + res.send({ error: error.message }); } }; diff --git a/data/centres.json b/data/centres.json index f8deb71..f825583 100644 --- a/data/centres.json +++ b/data/centres.json @@ -1,268 +1,268 @@ { - "centres": [ - { - "id": 1, - "name": "Semi-Conductor Laboratory (SCL)", - "Place": "Chandigarh", - "State": "Punjab/Haryana" - }, - { - "id": 2, - "name": "Western RRSC", - "Place": "Jodhpur", - "State": "Rajasthan" - }, - { - "id": 3, - "name": "Solar Observatory", - "Place": "Udaipur", - "State": "Rajasthan" - }, - { - "id": 4, - "name": "Space Applications Centre (SAC)", - "Place": "Ahmedabad", - "State": "Gujarat" - }, - { - "id": 5, - "name": "Physical Research Laboratory (PRL)", - "Place": "Ahmedabad", - "State": "Gujarat" - }, - { - "id": 6, - "name": "Development and Educational Communication Unit (DECU)", - "Place": "Ahmedabad", - "State": "Gujarat" - }, - { - "id": 7, - "name": "Infrared Observatory", - "Place": "Mt.Abu", - "State": "Rajasthan" - }, - { - "id": 8, - "name": "Master Control Facility-B (MCF)", - "Place": "Bhopal", - "State": "Madhya Pradesh" - }, - { - "id": 9, - "name": "ISRO Liaison Office", - "Place": "Mumbai", - "State": "Maharashtra" - }, - { - "id": 10, - "name": "Indian Deep Space Network (IDSN)", - "Place": "Byalalu", - "State": "Karnataka" - }, - { - "id": 11, - "name": "Indian Space Science Data Centre (ISSDC)", - "Place": "Byalalu", - "State": "Karnataka" - }, - { - "id": 12, - "name": "Master Control Facility (MCF)", - "Place": "Hassan", - "State": "Karnataka" - }, - { - "id": 13, - "name": "Ammonium Perchlorate Experimental Plant", - "Place": "Aluva", - "State": "Kerala" - }, - { - "id": 14, - "name": "Space Commission", - "Place": "Bengaluru", - "State": "Karnataka" - }, - { - "id": 15, - "name": "Department of Space and ISRO Headquarters", - "Place": "Bengaluru", - "State": "Karnataka" - }, - { - "id": 16, - "name": "INSAT Programme Office", - "Place": "Bengaluru", - "State": "Karnataka" - }, - { - "id": 17, - "name": "NNRMS Secretariat", - "Place": "Bengaluru", - "State": "Karnataka" - }, - { - "id": 18, - "name": "Civil Engineering Programme Office", - "Place": "Bengaluru", - "State": "Karnataka" - }, - { - "id": 19, - "name": "Antrix Corporation", - "Place": "Bengaluru", - "State": "Karnataka" - }, - { - "id": 20, - "name": "U R Rao Satellite Centre (URSC)", - "Place": "Bengaluru", - "State": "Karnataka" - }, - { - "id": 21, - "name": "Laboratory for Electro-Optical Systems (LEOS)", - "Place": "Bengaluru", - "State": "Karnataka" - }, - { - "id": 22, - "name": "ISRO Telemetry, Tracking and Command Network (ISTRAC)", - "Place": "Bengaluru", - "State": "Karnataka" - }, - { - "id": 23, - "name": "Southern RRSC", - "Place": "Bengaluru", - "State": "Karnataka" - }, - { - "id": 24, - "name": "Liquid Propulsion Systems Centre (LPSC)", - "Place": "Bengaluru", - "State": "Karnataka" - }, - { - "id": 25, - "name": "Human Space Flight Centre (HSFC)", - "Place": "Bengaluru", - "State": "Karnataka" - }, - { - "id": 26, - "name": "New Space India Limited (NSIL)", - "Place": "Bengaluru", - "State": "Karnataka" - }, - { - "id": 27, - "name": "New Space India Limited (NSIL)", - "Place": "New Delhi", - "State": "Delhi" - }, - { - "id": 28, - "name": "ISRO Branch Office", - "Place": "New Delhi", - "State": "Delhi" - }, - { - "id": 29, - "name": "Delhi Earth Station", - "Place": "New Delhi", - "State": "Delhi" - }, - { - "id": 30, - "name": "Indian Institute of Remote Sensing (IIRS)", - "Place": "Dehradun", - "State": "Uttarakhand" - }, - { - "id": 31, - "name": "Centre for Space Science and Technology Education in Asia-Pacific (CSSTEAP)", - "Place": "Dehradun", - "State": "Uttarakhand" - }, - { - "id": 32, - "name": "ISTRAC Ground Station", - "Place": "Lucknow", - "State": "Uttar Pradesh" - }, - { - "id": 33, - "name": "Eastern RRSC", - "Place": "Kolkata", - "State": "West Bengal" - }, - { - "id": 34, - "name": "North Eastern Space Application Centre (NE-SAC)", - "Place": "Shillong", - "State": "Meghalaya" - }, - { - "id": 35, - "name": "Central RRSC", - "Place": "Nagpur", - "State": "Maharashtra" - }, - { - "id": 36, - "name": "National Remote Sensing Centre (NRSC)", - "Place": "Hyderabad", - "State": "Telangana" - }, - { - "id": 37, - "name": "National Atmospheric Research Laboratory (NARL)", - "Place": "Tirupati", - "State": "Andhra Pradesh" - }, - { - "id": 38, - "name": "Down Range Station", - "Place": "Port Blair", - "State": "Andaman and Nicobar" - }, - { - "id": 39, - "name": "Satish Dhawan Space Centre (SDSC), SHAR", - "Place": "Sriharikota", - "State": "Andhra Pradesh" - }, - { - "id": 40, - "name": "ISRO Propulsion Complex", - "Place": "Mahendragiri", - "State": "Tamil Nadu" - }, - { - "id": 41, - "name": "Vikram Sarabhai Space Centre (VSSC)", - "Place": "Thiruvananthapuram", - "State": "Kerala" - }, - { - "id": 42, - "name": "Liquid Propulsion Systems Centre (LPSC)", - "Place": "Thiruvananthapuram", - "State": "Kerala" - }, - { - "id": 43, - "name": "ISRO Inertial Systems Unit (IISU)", - "Place": "Thiruvananthapuram", - "State": "Kerala" - }, - { - "id": 44, - "name": "Indian Institute of Space Science and Technology (IIST)", - "Place": "Thiruvananthapuram", - "State": "Kerala" - } - ] -} + "centres": [ + { + "id": 1, + "name": "Semi-Conductor Laboratory (SCL)", + "place": "Chandigarh", + "state": "Punjab/Haryana" + }, + { + "id": 2, + "name": "Western RRSC", + "place": "Jodhpur", + "state": "Rajasthan" + }, + { + "id": 3, + "name": "Solar Observatory", + "place": "Udaipur", + "state": "Rajasthan" + }, + { + "id": 4, + "name": "Space Applications Centre (SAC)", + "place": "Ahmedabad", + "state": "Gujarat" + }, + { + "id": 5, + "name": "Physical Research Laboratory (PRL)", + "place": "Ahmedabad", + "state": "Gujarat" + }, + { + "id": 6, + "name": "Development and Educational Communication Unit (DECU)", + "place": "Ahmedabad", + "state": "Gujarat" + }, + { + "id": 7, + "name": "Infrared Observatory", + "place": "Mt.Abu", + "state": "Rajasthan" + }, + { + "id": 8, + "name": "Master Control Facility-B (MCF)", + "place": "Bhopal", + "state": "Madhya Pradesh" + }, + { + "id": 9, + "name": "ISRO Liaison Office", + "place": "Mumbai", + "state": "Maharashtra" + }, + { + "id": 10, + "name": "Indian Deep Space Network (IDSN)", + "place": "Byalalu", + "state": "Karnataka" + }, + { + "id": 11, + "name": "Indian Space Science Data Centre (ISSDC)", + "place": "Byalalu", + "state": "Karnataka" + }, + { + "id": 12, + "name": "Master Control Facility (MCF)", + "place": "Hassan", + "state": "Karnataka" + }, + { + "id": 13, + "name": "Ammonium Perchlorate Experimental Plant", + "place": "Aluva", + "state": "Kerala" + }, + { + "id": 14, + "name": "Space Commission", + "place": "Bengaluru", + "state": "Karnataka" + }, + { + "id": 15, + "name": "Department of Space and ISRO Headquarters", + "place": "Bengaluru", + "state": "Karnataka" + }, + { + "id": 16, + "name": "INSAT Programme Office", + "place": "Bengaluru", + "state": "Karnataka" + }, + { + "id": 17, + "name": "NNRMS Secretariat", + "place": "Bengaluru", + "state": "Karnataka" + }, + { + "id": 18, + "name": "Civil Engineering Programme Office", + "place": "Bengaluru", + "state": "Karnataka" + }, + { + "id": 19, + "name": "Antrix Corporation", + "place": "Bengaluru", + "state": "Karnataka" + }, + { + "id": 20, + "name": "U R Rao Satellite Centre (URSC)", + "place": "Bengaluru", + "state": "Karnataka" + }, + { + "id": 21, + "name": "Laboratory for Electro-Optical Systems (LEOS)", + "place": "Bengaluru", + "state": "Karnataka" + }, + { + "id": 22, + "name": "ISRO Telemetry, Tracking and Command Network (ISTRAC)", + "place": "Bengaluru", + "state": "Karnataka" + }, + { + "id": 23, + "name": "Southern RRSC", + "place": "Bengaluru", + "state": "Karnataka" + }, + { + "id": 24, + "name": "Liquid Propulsion Systems Centre (LPSC)", + "place": "Bengaluru", + "state": "Karnataka" + }, + { + "id": 25, + "name": "Human Space Flight Centre (HSFC)", + "place": "Bengaluru", + "state": "Karnataka" + }, + { + "id": 26, + "name": "New Space India Limited (NSIL)", + "place": "Bengaluru", + "state": "Karnataka" + }, + { + "id": 27, + "name": "New Space India Limited (NSIL)", + "place": "New Delhi", + "state": "Delhi" + }, + { + "id": 28, + "name": "ISRO Branch Office", + "place": "New Delhi", + "state": "Delhi" + }, + { + "id": 29, + "name": "Delhi Earth Station", + "place": "New Delhi", + "state": "Delhi" + }, + { + "id": 30, + "name": "Indian Institute of Remote Sensing (IIRS)", + "place": "Dehradun", + "state": "Uttarakhand" + }, + { + "id": 31, + "name": "Centre for Space Science and Technology Education in Asia-Pacific (CSSTEAP)", + "place": "Dehradun", + "state": "Uttarakhand" + }, + { + "id": 32, + "name": "ISTRAC Ground Station", + "place": "Lucknow", + "state": "Uttar Pradesh" + }, + { + "id": 33, + "name": "Eastern RRSC", + "place": "Kolkata", + "state": "West Bengal" + }, + { + "id": 34, + "name": "North Eastern Space Application Centre (NE-SAC)", + "place": "Shillong", + "state": "Meghalaya" + }, + { + "id": 35, + "name": "Central RRSC", + "place": "Nagpur", + "state": "Maharashtra" + }, + { + "id": 36, + "name": "National Remote Sensing Centre (NRSC)", + "place": "Hyderabad", + "state": "Telangana" + }, + { + "id": 37, + "name": "National Atmospheric Research Laboratory (NARL)", + "place": "Tirupati", + "state": "Andhra Pradesh" + }, + { + "id": 38, + "name": "Down Range Station", + "place": "Port Blair", + "state": "Andaman and Nicobar" + }, + { + "id": 39, + "name": "Satish Dhawan Space Centre (SDSC), SHAR", + "place": "Sriharikota", + "state": "Andhra Pradesh" + }, + { + "id": 40, + "name": "ISRO Propulsion Complex", + "place": "Mahendragiri", + "state": "Tamil Nadu" + }, + { + "id": 41, + "name": "Vikram Sarabhai Space Centre (VSSC)", + "place": "Thiruvananthapuram", + "state": "Kerala" + }, + { + "id": 42, + "name": "Liquid Propulsion Systems Centre (LPSC)", + "place": "Thiruvananthapuram", + "state": "Kerala" + }, + { + "id": 43, + "name": "ISRO Inertial Systems Unit (IISU)", + "place": "Thiruvananthapuram", + "state": "Kerala" + }, + { + "id": 44, + "name": "Indian Institute of Space Science and Technology (IIST)", + "place": "Thiruvananthapuram", + "state": "Kerala" + } + ] +} \ No newline at end of file diff --git a/data/customer_satellites.json b/data/customer_satellites.json index fdca42f..4b7be04 100644 --- a/data/customer_satellites.json +++ b/data/customer_satellites.json @@ -1,528 +1,529 @@ { - "customer_satellites": [{ - "id": "DLR-TUBSAT", - "country": "Germany", - "launch_date": "26-05-1999", - "mass": "45", - "launcher": "PSLV-C2" - }, - { - "id": "KITSAT-3", - "country": "REPUBLIC OF KOREA", - "launch_date": "26-05-1999", - "mass": "110", - "launcher": "PSLV-C2" - }, - { - "id": "BIRD", - "country": "GERMANY", - "launch_date": "22-10-2001", - "mass": "92", - "launcher": "PSLV-C3" - }, - { - "id": "PROBA", - "country": "BELGIUM", - "launch_date": "22-10-2001", - "mass": "94", - "launcher": "PSLV-C3" - }, - { - "id": "LAPAN-TUBSAT", - "country": "INDONESIA", - "launch_date": "10-07-2007", - "mass": "56", - "launcher": "PSLV-C7" - }, - { - "id": "PEHUENSAT-1", - "country": "ARGENTINA", - "launch_date": "10-07-2007", - "mass": "6", - "launcher": "PSLV-C7" - }, - { - "id": "AGILE", - "country": "ITALY", - "launch_date": "23-04-2007", - "mass": "350", - "launcher": "PSLV-C8" - }, - { - "id": "TESCAR", - "country": "ISRAEL", - "launch_date": "21-01-2008", - "mass": "300", - "launcher": "PSLV-C10" - }, - { - "id": "CAN-X2", - "country": "CANADA", - "launch_date": "28-04-2008", - "mass": "7", - "launcher": "PSLV-C9" - }, - { - "id": "CUTE-1.7", - "country": "JAPAN", - "launch_date": "28-04-2008", - "mass": "5", - "launcher": "PSLV-C9" - }, - { - "id": "DELFI-C3", - "country": "THE NETHERLANDS", - "launch_date": "28-04-2008", - "mass": "6.5", - "launcher": "PSLV-C9" - }, - { - "id": "AAUSAT-II", - "country": "DENMARK", - "launch_date": "28-04-2008", - "mass": "3", - "launcher": "PSLV-C9" - }, - { - "id": "COMPASS-I", - "country": "GERMANY", - "launch_date": "28-04-2008", - "mass": "3", - "launcher": "PSLV-C9" - }, - { - "id": "SEEDS", - "country": "JAPAN", - "launch_date": "28-04-2008", - "mass": "3", - "launcher": "PSLV-C9" - }, - { - "id": "NLSS", - "country": "CANADA", - "launch_date": "28-04-2008", - "mass": "16", - "launcher": "PSLV-C9" - }, - { - "id": "RUBIN-8", - "country": "GERMANY", - "launch_date": "28-04-2008", - "mass": "8", - "launcher": "PSLV-C9" - }, - { - "id": "CUBESAT-1", - "country": "GERMANY", - "launch_date": "23-09-2009", - "mass": "1", - "launcher": "PSLV-C14" - }, - { - "id": "CUBESAT-2", - "country": "GERMANY", - "launch_date": "23-09-2009", - "mass": "1", - "launcher": "PSLV-C14" - }, - { - "id": "CUBESAT-3", - "country": "TURKEY", - "launch_date": "23-09-2009", - "mass": "1", - "launcher": "PSLV-C14" - }, - { - "id": "CUBESAT-4", - "country": "SWITZERLAND", - "launch_date": "23-09-2009", - "mass": "1", - "launcher": "PSLV-C14" - }, - { - "id": "RUBIN-9.1", - "country": "GERMANY", - "launch_date": "23-09-2009", - "mass": "1", - "launcher": "PSLV-C14" - }, - { - "id": "RUBIN-9.2", - "country": "GERMANY", - "launch_date": "23-09-2009", - "mass": "1", - "launcher": "PSLV-C14" - }, - { - "id": "ALSAT-2A", - "country": "ALGERIA", - "launch_date": "12-07-2010", - "mass": "116", - "launcher": "PSLV-C15" - }, - { - "id": "NLS6.1 AISSAT-1", - "country": "NORWAY", - "launch_date": "12-07-2010", - "mass": "6.5", - "launcher": "PSLV-C15" - }, - { - "id": "NLS6.2 TISAT-1", - "country": "SWITZERLAND", - "launch_date": "12-07-2010", - "mass": "1", - "launcher": "PSLV-C15" - }, - { - "id": "X-SAT", - "country": "SINGAPORE", - "launch_date": "20-04-2011", - "mass": "106", - "launcher": "PSLV-C16" - }, - { - "id": "VesselSat-1", - "country": "LUXEMBOURG", - "launch_date": "12-10-2011", - "mass": "28.7", - "launcher": "PSLV-C18" - }, - { - "id": "SPOT-6", - "country": "FRANCE", - "launch_date": "09-09-2012", - "mass": "712", - "launcher": "PSLV-C21" - }, - { - "id": "PROITERES", - "country": "JAPAN", - "launch_date": "09-09-2012", - "mass": "15", - "launcher": "PSLV-C21" - }, - { - "id": "SAPPHIRE", - "country": "CANADA", - "launch_date": "25-02-2013", - "mass": "148", - "launcher": "PSLV-C20" - }, - { - "id": "NEOSSAT", - "country": "CANADA", - "launch_date": "25-02-2013", - "mass": "74", - "launcher": "PSLV-C20" - }, - { - "id": "NLS8.1", - "country": "AUSTRIA", - "launch_date": "25-02-2013", - "mass": "14", - "launcher": "PSLV-C20" - }, - { - "id": "NLS8.2", - "country": "AUSTRIA", - "launch_date": "25-02-2013", - "mass": "14", - "launcher": "PSLV-C20" - }, - { - "id": "NLS8.3", - "country": "DENMARK", - "launch_date": "25-02-2013", - "mass": "3", - "launcher": "PSLV-C20" - }, - { - "id": "STRAND-1", - "country": "UNITED KINGDOM", - "launch_date": "25-02-2013", - "mass": "6.5", - "launcher": "PSLV-C20" - }, - { - "id": "SPOT-7", - "country": "FRANCE", - "launch_date": "30-06-2014", - "mass": "714", - "launcher": "PSLV-C23" - }, - { - "id": "AISAT", - "country": "GERMANY", - "launch_date": "30-06-2014", - "mass": "14", - "launcher": "PSLV-C23" - }, - { - "id": "NLS7.1(CAN-X4)", - "country": "CANADA", - "launch_date": "30-06-2014", - "mass": "15", - "launcher": "PSLV-C23" - }, - { - "id": "NLS7.2(CAN-X5)", - "country": "CANADA", - "launch_date": "30-06-2014", - "mass": "15", - "launcher": "PSLV-C23" - }, - { - "id": "VELOX-1", - "country": "SINGAPORE", - "launch_date": "30-06-2014", - "mass": "7", - "launcher": "PSLV-C23" - }, - { - "id": "AMAZONIA-1", - "country": "BRAZIL", - "launch_date": "28-02-2021", - "mass": "637", - "launcher": "PSLV-C51" - }, - { - "id": "DMC3-1", - "country": "UK", - "launch_date": "10-07-2015", - "mass": "447", - "launcher": "PSLV-C28" - }, - { - "id": "DMC3-2", - "country": "UK", - "launch_date": "10-07-2015", - "mass": "447", - "launcher": "PSLV-C28" - }, - { - "id": "DMC3-3", - "country": "UK", - "launch_date": "10-07-2015", - "mass": "447", - "launcher": "PSLV-C28" - }, - { - "id": "CBNT-1", - "country": "UK", - "launch_date": "10-07-2015", - "mass": "91", - "launcher": "PSLV-C28" - }, - { - "id": "De-OrbitSail", - "country": "UK", - "launch_date": "10-07-2015", - "mass": "7", - "launcher": "PSLV-C28" - }, - { - "id": "LAPAN-A2", - "country": "INDONESIA", - "launch_date": "28-09-2015", - "mass": "76", - "launcher": "PSLV-C30" - }, - { - "id": "NLS-14(Ev9)", - "country": "CANADA", - "launch_date": "28-09-2015", - "mass": "14", - "launcher": "PSLV-C30" - }, - { - "id": "LEMUR-1", - "country": "USA", - "launch_date": "28-09-2015", - "mass": "7", - "launcher": "PSLV-C30" - }, - { - "id": "LEMUR-2", - "country": "USA", - "launch_date": "28-09-2015", - "mass": "7", - "launcher": "PSLV-C30" - }, - { - "id": "LEMUR-3", - "country": "USA", - "launch_date": "28-09-2015", - "mass": "7", - "launcher": "PSLV-C30" - }, - { - "id": "LEMUR-4", - "country": "USA", - "launch_date": "28-09-2015", - "mass": "7", - "launcher": "PSLV-C30" - }, - { - "id": "TeLEOS", - "country": "SINGAPORE", - "launch_date": "16-12-2015", - "mass": "400", - "launcher": "PSLV-C29" - }, - { - "id": "Kent Ridge-I", - "country": "SINGAPORE", - "launch_date": "16-12-2015", - "mass": "78", - "launcher": "PSLV-C29" - }, - { - "id": "VELOX-C1", - "country": "SINGAPORE", - "launch_date": "16-12-2015", - "mass": "123", - "launcher": "PSLV-C29" - }, - { - "id": "VELOX-II", - "country": "SINGAPORE", - "launch_date": "16-12-2015", - "mass": "13", - "launcher": "PSLV-C29" - }, - { - "id": "Galassia", - "country": "SINGAPORE", - "launch_date": "16-12-2015", - "mass": "3.4", - "launcher": "PSLV-C29" - }, - { - "id": "Athenoxat-I", - "country": "SINGAPORE", - "launch_date": "16-12-2015", - "mass": "", - "launcher": "PSLV-C29" - }, - { - "id": "LAPAN-A3", - "country": "INDONESIA", - "launch_date": "22-06-2016", - "mass": "120", - "launcher": "PSLV-C34" - }, - { - "id": "BIROS", - "country": "GERMANY", - "launch_date": "22-06-2016", - "mass": "130", - "launcher": "PSLV-C34" - }, - { - "id": "M3MSat", - "country": "CANADA", - "launch_date": "22-06-2016", - "mass": "85", - "launcher": "PSLV-C34" - }, - { - "id": "SkySat Gen2-1", - "country": "USA", - "launch_date": "22-06-2016", - "mass": "110", - "launcher": "PSLV-C34" - }, - { - "id": "GHGSat-D", - "country": "CANADA", - "launch_date": "22-06-2016", - "mass": "25.5", - "launcher": "PSLV-C34" - }, - { - "id": "DOVE QP1.1", - "country": "USA", - "launch_date": "22-06-2016", - "mass": "4.7", - "launcher": "PSLV-C34" - }, - { - "id": "DOVE QP1.2", - "country": "USA", - "launch_date": "22-06-2016", - "mass": "4.7", - "launcher": "PSLV-C34" - }, - { - "id": "DOVE QP1.3", - "country": "USA", - "launch_date": "22-06-2016", - "mass": "4.7", - "launcher": "PSLV-C34" - }, - { - "id": "DOVE QP1.4", - "country": "USA", - "launch_date": "22-06-2016", - "mass": "4.7", - "launcher": "PSLV-C34" - }, - { - "id": "DOVE QP2.1", - "country": "USA", - "launch_date": "22-06-2016", - "mass": "4.7", - "launcher": "PSLV-C34" - }, - { - "id": "DOVE QP2.2", - "country": "USA", - "launch_date": "22-06-2016", - "mass": "4.7", - "launcher": "PSLV-C34" - }, - { - "id": "DOVE QP2.3", - "country": "USA", - "launch_date": "22-06-2016", - "mass": "4.7", - "launcher": "PSLV-C34" - }, - { - "id": "DOVE QP2.4", - "country": "USA", - "launch_date": "22-06-2016", - "mass": "4.7", - "launcher": "PSLV-C34" - }, - { - "id": "DOVE QP3.1", - "country": "USA", - "launch_date": "22-06-2016", - "mass": "4.7", - "launcher": "PSLV-C34" - }, - { - "id": "DOVE QP3.2", - "country": "USA", - "launch_date": "22-06-2016", - "mass": "4.7", - "launcher": "PSLV-C34" - }, - { - "id": "DOVE QP3.3", - "country": "USA", - "launch_date": "22-06-2016", - "mass": "4.7", - "launcher": "PSLV-C34" - }, - { - "id": "DOVE QP3.4", - "country": "USA", - "launch_date": "22-06-2016", - "mass": "4.7", - "launcher": "PSLV-C34" - } - ] -} + "customer_satellites": [ + { + "id": "DLR-TUBSAT", + "country": "Germany", + "launch_date": "1999-05-26", + "mass_kg": 45.0, + "launcher": "PSLV-C2" + }, + { + "id": "KITSAT-3", + "country": "South Korea", + "launch_date": "1999-05-26", + "mass_kg": 110.0, + "launcher": "PSLV-C2" + }, + { + "id": "BIRD", + "country": "Germany", + "launch_date": "2001-10-22", + "mass_kg": 92.0, + "launcher": "PSLV-C3" + }, + { + "id": "PROBA", + "country": "Belgium", + "launch_date": "2001-10-22", + "mass_kg": 94.0, + "launcher": "PSLV-C3" + }, + { + "id": "LAPAN-TUBSAT", + "country": "Indonesia", + "launch_date": "2007-07-10", + "mass_kg": 56.0, + "launcher": "PSLV-C7" + }, + { + "id": "PEHUENSAT-1", + "country": "Argentina", + "launch_date": "2007-07-10", + "mass_kg": 6.0, + "launcher": "PSLV-C7" + }, + { + "id": "AGILE", + "country": "Italy", + "launch_date": "2007-04-23", + "mass_kg": 350.0, + "launcher": "PSLV-C8" + }, + { + "id": "TESCAR", + "country": "Israel", + "launch_date": "2008-01-21", + "mass_kg": 300.0, + "launcher": "PSLV-C10" + }, + { + "id": "CAN-X2", + "country": "Canada", + "launch_date": "2008-04-28", + "mass_kg": 7.0, + "launcher": "PSLV-C9" + }, + { + "id": "CUTE-1.7", + "country": "Japan", + "launch_date": "2008-04-28", + "mass_kg": 5.0, + "launcher": "PSLV-C9" + }, + { + "id": "DELFI-C3", + "country": "Netherlands", + "launch_date": "2008-04-28", + "mass_kg": 6.5, + "launcher": "PSLV-C9" + }, + { + "id": "AAUSAT-II", + "country": "Denmark", + "launch_date": "2008-04-28", + "mass_kg": 3.0, + "launcher": "PSLV-C9" + }, + { + "id": "COMPASS-I", + "country": "Germany", + "launch_date": "2008-04-28", + "mass_kg": 3.0, + "launcher": "PSLV-C9" + }, + { + "id": "SEEDS", + "country": "Japan", + "launch_date": "2008-04-28", + "mass_kg": 3.0, + "launcher": "PSLV-C9" + }, + { + "id": "NLSS", + "country": "Canada", + "launch_date": "2008-04-28", + "mass_kg": 16.0, + "launcher": "PSLV-C9" + }, + { + "id": "RUBIN-8", + "country": "Germany", + "launch_date": "2008-04-28", + "mass_kg": 8.0, + "launcher": "PSLV-C9" + }, + { + "id": "CUBESAT-1", + "country": "Germany", + "launch_date": "2009-09-23", + "mass_kg": 1.0, + "launcher": "PSLV-C14" + }, + { + "id": "CUBESAT-2", + "country": "Germany", + "launch_date": "2009-09-23", + "mass_kg": 1.0, + "launcher": "PSLV-C14" + }, + { + "id": "CUBESAT-3", + "country": "Turkey", + "launch_date": "2009-09-23", + "mass_kg": 1.0, + "launcher": "PSLV-C14" + }, + { + "id": "CUBESAT-4", + "country": "Switzerland", + "launch_date": "2009-09-23", + "mass_kg": 1.0, + "launcher": "PSLV-C14" + }, + { + "id": "RUBIN-9.1", + "country": "Germany", + "launch_date": "2009-09-23", + "mass_kg": 1.0, + "launcher": "PSLV-C14" + }, + { + "id": "RUBIN-9.2", + "country": "Germany", + "launch_date": "2009-09-23", + "mass_kg": 1.0, + "launcher": "PSLV-C14" + }, + { + "id": "ALSAT-2A", + "country": "Algeria", + "launch_date": "2010-07-12", + "mass_kg": 116.0, + "launcher": "PSLV-C15" + }, + { + "id": "NLS6.1 AISSAT-1", + "country": "Norway", + "launch_date": "2010-07-12", + "mass_kg": 6.5, + "launcher": "PSLV-C15" + }, + { + "id": "NLS6.2 TISAT-1", + "country": "Switzerland", + "launch_date": "2010-07-12", + "mass_kg": 1.0, + "launcher": "PSLV-C15" + }, + { + "id": "X-SAT", + "country": "Singapore", + "launch_date": "2011-04-20", + "mass_kg": 106.0, + "launcher": "PSLV-C16" + }, + { + "id": "VesselSat-1", + "country": "Luxembourg", + "launch_date": "2011-10-12", + "mass_kg": 28.7, + "launcher": "PSLV-C18" + }, + { + "id": "SPOT-6", + "country": "France", + "launch_date": "2012-09-09", + "mass_kg": 712.0, + "launcher": "PSLV-C21" + }, + { + "id": "PROITERES", + "country": "Japan", + "launch_date": "2012-09-09", + "mass_kg": 15.0, + "launcher": "PSLV-C21" + }, + { + "id": "SAPPHIRE", + "country": "Canada", + "launch_date": "2013-02-25", + "mass_kg": 148.0, + "launcher": "PSLV-C20" + }, + { + "id": "NEOSSAT", + "country": "Canada", + "launch_date": "2013-02-25", + "mass_kg": 74.0, + "launcher": "PSLV-C20" + }, + { + "id": "NLS8.1", + "country": "Austria", + "launch_date": "2013-02-25", + "mass_kg": 14.0, + "launcher": "PSLV-C20" + }, + { + "id": "NLS8.2", + "country": "Austria", + "launch_date": "2013-02-25", + "mass_kg": 14.0, + "launcher": "PSLV-C20" + }, + { + "id": "NLS8.3", + "country": "Denmark", + "launch_date": "2013-02-25", + "mass_kg": 3.0, + "launcher": "PSLV-C20" + }, + { + "id": "STRAND-1", + "country": "United Kingdom", + "launch_date": "2013-02-25", + "mass_kg": 6.5, + "launcher": "PSLV-C20" + }, + { + "id": "SPOT-7", + "country": "France", + "launch_date": "2014-06-30", + "mass_kg": 714.0, + "launcher": "PSLV-C23" + }, + { + "id": "AISAT", + "country": "Germany", + "launch_date": "2014-06-30", + "mass_kg": 14.0, + "launcher": "PSLV-C23" + }, + { + "id": "NLS7.1(CAN-X4)", + "country": "Canada", + "launch_date": "2014-06-30", + "mass_kg": 15.0, + "launcher": "PSLV-C23" + }, + { + "id": "NLS7.2(CAN-X5)", + "country": "Canada", + "launch_date": "2014-06-30", + "mass_kg": 15.0, + "launcher": "PSLV-C23" + }, + { + "id": "VELOX-1", + "country": "Singapore", + "launch_date": "2014-06-30", + "mass_kg": 7.0, + "launcher": "PSLV-C23" + }, + { + "id": "AMAZONIA-1", + "country": "Brazil", + "launch_date": "2021-02-28", + "mass_kg": 637.0, + "launcher": "PSLV-C51" + }, + { + "id": "DMC3-1", + "country": "United Kingdom", + "launch_date": "2015-07-10", + "mass_kg": 447.0, + "launcher": "PSLV-C28" + }, + { + "id": "DMC3-2", + "country": "United Kingdom", + "launch_date": "2015-07-10", + "mass_kg": 447.0, + "launcher": "PSLV-C28" + }, + { + "id": "DMC3-3", + "country": "United Kingdom", + "launch_date": "2015-07-10", + "mass_kg": 447.0, + "launcher": "PSLV-C28" + }, + { + "id": "CBNT-1", + "country": "United Kingdom", + "launch_date": "2015-07-10", + "mass_kg": 91.0, + "launcher": "PSLV-C28" + }, + { + "id": "De-OrbitSail", + "country": "United Kingdom", + "launch_date": "2015-07-10", + "mass_kg": 7.0, + "launcher": "PSLV-C28" + }, + { + "id": "LAPAN-A2", + "country": "Indonesia", + "launch_date": "2015-09-28", + "mass_kg": 76.0, + "launcher": "PSLV-C30" + }, + { + "id": "NLS-14(Ev9)", + "country": "Canada", + "launch_date": "2015-09-28", + "mass_kg": 14.0, + "launcher": "PSLV-C30" + }, + { + "id": "LEMUR-1", + "country": "United States", + "launch_date": "2015-09-28", + "mass_kg": 7.0, + "launcher": "PSLV-C30" + }, + { + "id": "LEMUR-2", + "country": "United States", + "launch_date": "2015-09-28", + "mass_kg": 7.0, + "launcher": "PSLV-C30" + }, + { + "id": "LEMUR-3", + "country": "United States", + "launch_date": "2015-09-28", + "mass_kg": 7.0, + "launcher": "PSLV-C30" + }, + { + "id": "LEMUR-4", + "country": "United States", + "launch_date": "2015-09-28", + "mass_kg": 7.0, + "launcher": "PSLV-C30" + }, + { + "id": "TeLEOS", + "country": "Singapore", + "launch_date": "2015-12-16", + "mass_kg": 400.0, + "launcher": "PSLV-C29" + }, + { + "id": "Kent Ridge-I", + "country": "Singapore", + "launch_date": "2015-12-16", + "mass_kg": 78.0, + "launcher": "PSLV-C29" + }, + { + "id": "VELOX-C1", + "country": "Singapore", + "launch_date": "2015-12-16", + "mass_kg": 123.0, + "launcher": "PSLV-C29" + }, + { + "id": "VELOX-II", + "country": "Singapore", + "launch_date": "2015-12-16", + "mass_kg": 13.0, + "launcher": "PSLV-C29" + }, + { + "id": "Galassia", + "country": "Singapore", + "launch_date": "2015-12-16", + "mass_kg": 3.4, + "launcher": "PSLV-C29" + }, + { + "id": "Athenoxat-I", + "country": "Singapore", + "launch_date": "2015-12-16", + "mass_kg": null, + "launcher": "PSLV-C29" + }, + { + "id": "LAPAN-A3", + "country": "Indonesia", + "launch_date": "2016-06-22", + "mass_kg": 120.0, + "launcher": "PSLV-C34" + }, + { + "id": "BIROS", + "country": "Germany", + "launch_date": "2016-06-22", + "mass_kg": 130.0, + "launcher": "PSLV-C34" + }, + { + "id": "M3MSat", + "country": "Canada", + "launch_date": "2016-06-22", + "mass_kg": 85.0, + "launcher": "PSLV-C34" + }, + { + "id": "SkySat Gen2-1", + "country": "United States", + "launch_date": "2016-06-22", + "mass_kg": 110.0, + "launcher": "PSLV-C34" + }, + { + "id": "GHGSat-D", + "country": "Canada", + "launch_date": "2016-06-22", + "mass_kg": 25.5, + "launcher": "PSLV-C34" + }, + { + "id": "DOVE QP1.1", + "country": "United States", + "launch_date": "2016-06-22", + "mass_kg": 4.7, + "launcher": "PSLV-C34" + }, + { + "id": "DOVE QP1.2", + "country": "United States", + "launch_date": "2016-06-22", + "mass_kg": 4.7, + "launcher": "PSLV-C34" + }, + { + "id": "DOVE QP1.3", + "country": "United States", + "launch_date": "2016-06-22", + "mass_kg": 4.7, + "launcher": "PSLV-C34" + }, + { + "id": "DOVE QP1.4", + "country": "United States", + "launch_date": "2016-06-22", + "mass_kg": 4.7, + "launcher": "PSLV-C34" + }, + { + "id": "DOVE QP2.1", + "country": "United States", + "launch_date": "2016-06-22", + "mass_kg": 4.7, + "launcher": "PSLV-C34" + }, + { + "id": "DOVE QP2.2", + "country": "United States", + "launch_date": "2016-06-22", + "mass_kg": 4.7, + "launcher": "PSLV-C34" + }, + { + "id": "DOVE QP2.3", + "country": "United States", + "launch_date": "2016-06-22", + "mass_kg": 4.7, + "launcher": "PSLV-C34" + }, + { + "id": "DOVE QP2.4", + "country": "United States", + "launch_date": "2016-06-22", + "mass_kg": 4.7, + "launcher": "PSLV-C34" + }, + { + "id": "DOVE QP3.1", + "country": "United States", + "launch_date": "2016-06-22", + "mass_kg": 4.7, + "launcher": "PSLV-C34" + }, + { + "id": "DOVE QP3.2", + "country": "United States", + "launch_date": "2016-06-22", + "mass_kg": 4.7, + "launcher": "PSLV-C34" + }, + { + "id": "DOVE QP3.3", + "country": "United States", + "launch_date": "2016-06-22", + "mass_kg": 4.7, + "launcher": "PSLV-C34" + }, + { + "id": "DOVE QP3.4", + "country": "United States", + "launch_date": "2016-06-22", + "mass_kg": 4.7, + "launcher": "PSLV-C34" + } + ] +} \ No newline at end of file diff --git a/data/launchers.json b/data/launchers.json index cbadda8..24a04fd 100644 --- a/data/launchers.json +++ b/data/launchers.json @@ -1,247 +1,439 @@ { - "launchers": [ - { - "id": "SLV-3E1" - }, - { - "id": "SLV-3E2" - }, - { - "id": "SLV-3D1" - }, - { - "id": "SLV-3" - }, - { - "id": "ASLV-D1" - }, - { - "id": "ASLV-D2" - }, - { - "id": "ASLV-D3" - }, - { - "id": "PSLV-D1" - }, - { - "id": "ASLV-D4" - }, - { - "id": "PSLV-D2" - }, - { - "id": "PSLV-D3" - }, - { - "id": "PSLV-C1" - }, - { - "id": "PSLV-C2" - }, - { - "id": "GSLV-D1" - }, - { - "id": "PSLV-C3" - }, - { - "id": "PSLV-C4" - }, - { - "id": "GSLV-D2" - }, - { - "id": "PSLV-C5" - }, - { - "id": "GSLV-F01" - }, - { - "id": "PSLV-C6" - }, - { - "id": "GSLV-F02" - }, - { - "id": "PSLV-C7" - }, - { - "id": "PSLV-C8" - }, - { - "id": "GSLV-F04" - }, - { - "id": "PSLV-C10" - }, - { - "id": "PSLV-C9" - }, - { - "id": "PSLV-C11" - }, - { - "id": "PSLV-C12" - }, - { - "id": "PSLV-C14" - }, - { - "id": "GSLV-D3" - }, - { - "id": "PSLV-C15" - }, - { - "id": "GSLV-F06" - }, - { - "id": "PSLV-C16" - }, - { - "id": "PSLV-C17" - }, - { - "id": "PSLV-C18" - }, - { - "id": "PSLV-C19" - }, - { - "id": "PSLV-C21" - }, - { - "id": "PSLV-C20" - }, - { - "id": "PSLV-C22" - }, - { - "id": "PSLV-C25" - }, - { - "id": "GSLV-D5" - }, - { - "id": "PSLV-C24" - }, - { - "id": "PSLV-C23" - }, - { - "id": "PSLV-C26" - }, - { - "id": "LVM-3" - }, - { - "id": "PSLV-C27" - }, - { - "id": "PSLV-C28" - }, - { - "id": "GSLV-D6" - }, - { - "id": "PSLV-C30" - }, - { - "id": "PSLV-C29" - }, - { - "id": "PSLV-C31" - }, - { - "id": "PSLV-C32" - }, - { - "id": "PSLV-C33" - }, - { - "id": "RLV-TD" - }, - { - "id": "PSLV-C34" - }, - { - "id": "Scramjet Engine - TD" - }, - { - "id": "GSLV-F05" - }, - { - "id": "PSLV-C35" - }, - { - "id": "PSLV-C36" - }, - { - "id": "PSLV-C37" - }, - { - "id": "GSLV-F09" - }, - { - "id": "GSLV Mk III-D1" - }, - { - "id": "PSLV-C38" - }, - { - "id": "PSLV-C39" - }, - { - "id": "PSLV-C40" - }, - { - "id": "GSLV-F08" - }, - { - "id": "PSLV-C41" - }, - { - "id": "PSLV-C42" - }, - { - "id": "GSLV Mk III-D2" - }, - { - "id": "PSLV-C43" - }, - { - "id": "GSLV-F11" - }, - { - "id": "PSLV-C44" - }, - { - "id": "PSLV-C45" - }, - { - "id": "PSLV-C46" - }, - { - "id": "GSLV-Mk III - M1" - }, - { - "id": "PSLV-C47" - }, - { - "id": "PSLV-C48" - }, - { - "id": "PSLV-C49" - }, - { - "id": "PSLV-C50" - }, - { - "id": "PSLV-C51" - }, - { - "id": "GSLV-F10" - } - ] -} + "launchers": [ + { + "id": "SLV-3E1", + "vehicle_family": "SLV" + }, + { + "id": "SLV-3E2", + "vehicle_family": "SLV" + }, + { + "id": "SLV-3D1", + "vehicle_family": "SLV" + }, + { + "id": "SLV-3", + "vehicle_family": "SLV" + }, + { + "id": "ASLV-D1", + "vehicle_family": "ASLV" + }, + { + "id": "ASLV-D2", + "vehicle_family": "ASLV" + }, + { + "id": "ASLV-D3", + "vehicle_family": "ASLV" + }, + { + "id": "PSLV-D1", + "vehicle_family": "PSLV" + }, + { + "id": "ASLV-D4", + "vehicle_family": "ASLV" + }, + { + "id": "PSLV-D2", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-D3", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C1", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C2", + "vehicle_family": "PSLV", + "customer_satellites_launched": [ + "DLR-TUBSAT", + "KITSAT-3" + ] + }, + { + "id": "GSLV-D1", + "vehicle_family": "GSLV" + }, + { + "id": "PSLV-C3", + "vehicle_family": "PSLV", + "customer_satellites_launched": [ + "BIRD", + "PROBA" + ] + }, + { + "id": "PSLV-C4", + "vehicle_family": "PSLV" + }, + { + "id": "GSLV-D2", + "vehicle_family": "GSLV" + }, + { + "id": "PSLV-C5", + "vehicle_family": "PSLV" + }, + { + "id": "GSLV-F01", + "vehicle_family": "GSLV" + }, + { + "id": "PSLV-C6", + "vehicle_family": "PSLV" + }, + { + "id": "GSLV-F02", + "vehicle_family": "GSLV" + }, + { + "id": "PSLV-C7", + "vehicle_family": "PSLV", + "customer_satellites_launched": [ + "LAPAN-TUBSAT", + "PEHUENSAT-1" + ] + }, + { + "id": "PSLV-C8", + "vehicle_family": "PSLV", + "customer_satellites_launched": [ + "AGILE" + ] + }, + { + "id": "GSLV-F04", + "vehicle_family": "GSLV" + }, + { + "id": "PSLV-C10", + "vehicle_family": "PSLV", + "customer_satellites_launched": [ + "TESCAR" + ] + }, + { + "id": "PSLV-C9", + "vehicle_family": "PSLV", + "customer_satellites_launched": [ + "CAN-X2", + "CUTE-1.7", + "DELFI-C3", + "AAUSAT-II", + "COMPASS-I", + "SEEDS", + "NLSS", + "RUBIN-8" + ] + }, + { + "id": "PSLV-C11", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C12", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C14", + "vehicle_family": "PSLV", + "customer_satellites_launched": [ + "CUBESAT-1", + "CUBESAT-2", + "CUBESAT-3", + "CUBESAT-4", + "RUBIN-9.1", + "RUBIN-9.2" + ] + }, + { + "id": "GSLV-D3", + "vehicle_family": "GSLV" + }, + { + "id": "PSLV-C15", + "vehicle_family": "PSLV", + "customer_satellites_launched": [ + "ALSAT-2A", + "NLS6.1 AISSAT-1", + "NLS6.2 TISAT-1" + ] + }, + { + "id": "GSLV-F06", + "vehicle_family": "GSLV" + }, + { + "id": "PSLV-C16", + "vehicle_family": "PSLV", + "customer_satellites_launched": [ + "X-SAT" + ] + }, + { + "id": "PSLV-C17", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C18", + "vehicle_family": "PSLV", + "customer_satellites_launched": [ + "VesselSat-1" + ] + }, + { + "id": "PSLV-C19", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C21", + "vehicle_family": "PSLV", + "customer_satellites_launched": [ + "SPOT-6", + "PROITERES" + ] + }, + { + "id": "PSLV-C20", + "vehicle_family": "PSLV", + "customer_satellites_launched": [ + "SAPPHIRE", + "NEOSSAT", + "NLS8.1", + "NLS8.2", + "NLS8.3", + "STRAND-1" + ] + }, + { + "id": "PSLV-C22", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C25", + "vehicle_family": "PSLV" + }, + { + "id": "GSLV-D5", + "vehicle_family": "GSLV" + }, + { + "id": "PSLV-C24", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C23", + "vehicle_family": "PSLV", + "customer_satellites_launched": [ + "SPOT-7", + "AISAT", + "NLS7.1(CAN-X4)", + "NLS7.2(CAN-X5)", + "VELOX-1" + ] + }, + { + "id": "PSLV-C26", + "vehicle_family": "PSLV" + }, + { + "id": "LVM-3", + "vehicle_family": "LVM-3" + }, + { + "id": "PSLV-C27", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C28", + "vehicle_family": "PSLV", + "customer_satellites_launched": [ + "DMC3-1", + "DMC3-2", + "DMC3-3", + "CBNT-1", + "De-OrbitSail" + ] + }, + { + "id": "GSLV-D6", + "vehicle_family": "GSLV" + }, + { + "id": "PSLV-C30", + "vehicle_family": "PSLV", + "customer_satellites_launched": [ + "LAPAN-A2", + "NLS-14(Ev9)", + "LEMUR-1", + "LEMUR-2", + "LEMUR-3", + "LEMUR-4" + ] + }, + { + "id": "PSLV-C29", + "vehicle_family": "PSLV", + "customer_satellites_launched": [ + "TeLEOS", + "Kent Ridge-I", + "VELOX-C1", + "VELOX-II", + "Galassia", + "Athenoxat-I" + ] + }, + { + "id": "PSLV-C31", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C32", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C33", + "vehicle_family": "PSLV" + }, + { + "id": "RLV-TD", + "vehicle_family": "RLV" + }, + { + "id": "PSLV-C34", + "vehicle_family": "PSLV", + "customer_satellites_launched": [ + "LAPAN-A3", + "BIROS", + "M3MSat", + "SkySat Gen2-1", + "GHGSat-D", + "DOVE QP1.1", + "DOVE QP1.2", + "DOVE QP1.3", + "DOVE QP1.4", + "DOVE QP2.1", + "DOVE QP2.2", + "DOVE QP2.3", + "DOVE QP2.4", + "DOVE QP3.1", + "DOVE QP3.2", + "DOVE QP3.3", + "DOVE QP3.4" + ] + }, + { + "id": "Scramjet Engine - TD", + "vehicle_family": "Scramjet-TD" + }, + { + "id": "GSLV-F05", + "vehicle_family": "GSLV" + }, + { + "id": "PSLV-C35", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C36", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C37", + "vehicle_family": "PSLV" + }, + { + "id": "GSLV-F09", + "vehicle_family": "GSLV" + }, + { + "id": "GSLV Mk III-D1", + "vehicle_family": "GSLV Mk III" + }, + { + "id": "PSLV-C38", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C39", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C40", + "vehicle_family": "PSLV" + }, + { + "id": "GSLV-F08", + "vehicle_family": "GSLV" + }, + { + "id": "PSLV-C41", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C42", + "vehicle_family": "PSLV" + }, + { + "id": "GSLV Mk III-D2", + "vehicle_family": "GSLV Mk III" + }, + { + "id": "PSLV-C43", + "vehicle_family": "PSLV" + }, + { + "id": "GSLV-F11", + "vehicle_family": "GSLV" + }, + { + "id": "PSLV-C44", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C45", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C46", + "vehicle_family": "PSLV" + }, + { + "id": "GSLV-Mk III - M1", + "vehicle_family": "GSLV Mk III" + }, + { + "id": "PSLV-C47", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C48", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C49", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C50", + "vehicle_family": "PSLV" + }, + { + "id": "PSLV-C51", + "vehicle_family": "PSLV", + "customer_satellites_launched": [ + "AMAZONIA-1" + ] + }, + { + "id": "GSLV-F10", + "vehicle_family": "GSLV" + } + ] +} \ No newline at end of file diff --git a/data/spacecraft_missions.json b/data/spacecraft_missions.json index 78e00aa..9844b9b 100644 --- a/data/spacecraft_missions.json +++ b/data/spacecraft_missions.json @@ -1,968 +1,1220 @@ -[ - { - "name": "RISAT-2BR1", - "id": 65, - "lift-off_weight": "628 kg", - "altitude": "576 km", - "payload": "X-Band Radar", - "inclination": "37 deg", - "mission_life": "5 years" - }, - { - "name": "Cartosat-3", - "id": 64, - "mean_altitude": "509 km", - "mean_inclination": "97.5\u00b0", - "overall_mass": "1625 kg", - "power_generation": "2000W", - "mission_life": "5 years" - }, - { - "name": "GSAT-15", - "id": 63, - "mission": "Communication and Satellite Navigation", - "weight": "3164 kg (Mass at Lift \u2013 off) 1440 kg (Dry Mass)", - "power": "Solar array providing 6200 Watts and Three 100 AH Lithium-Ion batteries ", - "propulsion": "Bi- propellant System", - "launch_date": "November 11, 2015", - "launch_site": "Kourou, French Guiana", - "launch_vehicle": "Ariane-5 VA-227", - "orbit": "Geostationary (93.5\u00b0 East longitude)Co-located with INSAT-3A and INSAT-4B", - "mission_life": "12 Years" - }, - { - "name": "GSAT-6", - "id": 62, - "physical_properties": "Lift off Mass : 2117 kg Main Structure : I-2K Overall size(m) : 2.1 x 2.5 x 4.1", - "power": "Generated power 3100 W", - "aocs": "Momentum biased 3-axis stabilised", - "antennas": "One 0.8 m (fixed) and one 6 m unfurlable antenna (transmit and receive)", - "communication_payloads": "i. S-band payload with five spot beams covering India for user links ii. C-band payload with one beam covering India for hub links S-band payload uses 6 m unfurlable antenna and C-band uses 0.8 m antenna.", - "mission_life": "9 years" - }, - { - "name": "IRNSS-1B", - "id": 61, - "off_mass": "1432 kg", - "physical_dimensions": "1.58 metre x 1.50 metre x 1.50 metre", - "orbit": "Geosynchronous, at 55 deg East longitude with 29 deg inclination", - "power": "Two solar panels generating 1660 W, one lithium-ion battery of 90 Ampere-Hour capacity", - "propulsion": "440 Newton Liquid Apogee Motor, twelve 22 Newton Thrusters", - "control_system": "Zero momentum system, orientation input from Sun & star Sensors and Gyroscopes; Reaction Wheels, Magnetic Torquers and 22 Newton thrusters as actuators", - "mission_life": "10 years", - "launch_date": "Apr 04, 2014", - "launch_site": "SDSC SHAR Centre, Sriharikota, India", - "launch_vehicle": "PSLV - C24" - }, - { - "name": "GSAT-14", - "id": 60, - "mass_at_lift-off": "1982 kg", - "overall_size_(m)": "2.0 X 2.0 X 3.6", - "power": "2600 W", - "attitude_and_orbit_control_system_(aocs)": "Momentum biased 3-axis stabilized mode", - "propulsion_system": "Bi propellant-Mono Methyl Hydrazine and Mixed Oxides of Nitrogen (MON-3)", - "antennae": "One 2m and one 2.2 m single shell shaped reflector Antennae (transmit and receive)", - "launch_date": "January 05, 2014", - "launch_site": "SDSC, SHAR", - "launch_vehicle": "GSLV-D5", - "orbit": "74 deg East longitude in geostationary orbit", - "mission_life": "12 Years" - }, - { - "name": "GSAT-7", - "id": 59, - "mission": "Communication", - "mass_at_lift-off": "2650 kg", - "physical_dimensions": "3.1 m X 1.7 m X 2.0 m", - "power": "3,000 W (end of life)", - "satbilisation": "3-axis stabilized", - "launch_date": "August 30, 2013", - "launch_site": "Kourou, French Guiana", - "launch_vehicle": "Ariane-5 VA-215", - "orbit": "74oE Geo Stationary", - "mission_life": "> 7 Years" - }, - { - "name": "INSAT-3D", - "id": 58, - "mission": "Meteorological and Search & Rescue Services", - "mass_at_lift-off": "2060 kg", - "power": "Solar panel generating 1164 W Two 18 Ah Ni-Cd batteries", - "physical_dimensions": "2.4m x 1.6m x 1.5m", - "propulsion": "440 Newton Liquid Apogee Motor (LAM) and twelve 22 Newton thrusters with Mono Methyl Hydrazine (MMH) as fuel and mixed Oxides of Nitrogen (MON-3) as oxidizer", - "stabilisation": "3-asix body stabilized in orbit using Sun Sensors, Star Sensors, gyroscopes, Momentum and Reaction Wheels, Magnetic Torquers and thrusters", - "antennae": "0.9m and 1.0m body mounted antennas", - "launch_date": "July 26, 2013", - "launch_site": "Kourou, French Guiana", - "launch_vehicle": "Ariane-5 VA-214", - "orbit": "Geostationary, 82 deg E Longitude", - "mission_life": "7 Years" - }, - { - "name": "IRNSS-1A", - "id": 57, - "lift-off_mass": "1425 kg", - "physical_dimensions": "1.58 metre x 1.50 metre x 1.50 metre", - "orbit": "Geosynchronous, at 55 deg East longitude with 29 deg inclination", - "power": "Two solar panels generating 1660 W, one lithium-ion battery of 90 Ampere-Hour capacity", - "propulsion": "440 Newton Liquid Apogee Motor, twelve 22 Newton Thrusters", - "control_system": "Zero momentum system, orientation input from Sun & star Sensors and Gyroscopes; Reaction Wheels, Magnetic Torquers and 22 Newton thrusters as actuators", - "mission_life": "10 years", - "launch_date": "Jul 01, 2013", - "launch_site": "SDSC SHAR Centre, Sriharikota, India", - "launch_vehicle": "PSLV - C22" - }, - { - "name": "SARAL", - "id": 56, - "lift-off_mass": "407 kg", - "orbit": "781 km polar Sun synchronous", - "sensors": "4 PI sun sensors, magnetometer, star sensors and miniaturised gyro based Inertial Reference Unit", - "orbit_inclination": "98.538o", - "local_time_of_equator": "18:00 hours crossing", - "power": "Solar Array generating 906 W and 46.8 Ampere-hour Lithium-ion battery", - "onboard_data_storage": "32 Gb", - "attitude_and_orbit_control": "3-axis stabilisation with reaction wheels, Hydrazine Control System based thrusters", - "mission_life": "5 years", - "launch_date": "Feb 25, 2013", - "launch_site": "SDSC SHAR Centre, Sriharikota, India", - "launch_vehicle": "PSLV - C20" - }, - { - "name": "GSAT-10", - "id": 55, - "mission": "Communication", - "weight": "3400 kg (Mass at Lift \u2013 off) 1498 kg (Dry Mass)", - "power": "Solar array providing 6474 Watts (at Equinox) and two 128 AH Lithium-Ion batteries", - "physical_dimensions": "2.0 m X 1.77 m X 3.1 m cuboid", - "propulsion": "440 Newton Liquid Apogee Motors (LAM) with Mono Methyl Hydrazine (MMH) as fuel and Mixed oxides of Nitrogen (MON-3) as oxidizer for orbit raising.", - "stabilisation": "3-axis body stabilised in orbit using Earth Sensors, Sun Sensors, Momentum and Reaction Wheels, Magnetic Torquers and eight 10 Newton and eight 22 Newton bipropellant thrusters", - "antennae": "East : 2.2 m dia circular deployable Dual Gridded Reflector (DGR) West : 2.2 m X 2.4 m elliptical deployable DGR Earth Viewing Face (top) : 0.7 m parabolic, 0.9 m parabolic and 0.8 m X 0.8 m sixteen element helical antenna for GAGAN", - "launch_date": "September 29, 2012", - "launch_site": "Kourou, French Guiana", - "launch_vehicle": "Ariane-5 VA-209", - "orbit": "Geostationary (83\u00b0 East longitude), co-located with INSAT-4A and GSAT-12", - "mission_life": "15 Years" - }, - { - "name": "RISAT-1", - "id": 54, - "mass": "1858 kg", - "orbit": "Circular Polar Sun Synchronous", - "orbit_altitude": "536 km", - "orbit_inclination": "97.552o", - "orbit_period": "95.49 min", - "number_of_orbits_per_day": "14", - "local_time_of_equator_crossing": "6:00 am / 6:00 pm", - "power": "Solar Array generating 2200 W and one 70 AH Ni-H2 battery", - "repetivity": "25 days", - "attitude_and_orbit_control": "3-axis body stabilised using Reaction Wheels, Magnetic Torquers and Hydrazine Thrusters", - "nominal_mission_life": "5 years", - "launch_date": "April 26, 2012", - "launch_site": "SDSC SHAR Centre, Sriharikota, India", - "launch_vehicle": "PSLV- C19" - }, - { - "name": "Megha-Tropiques", - "id": 53, - "lift-off_mass": "1000 kg", - "orbit": "867 km with an inclination of 20 deg to the equator", - "thermal": "Passive system with IRS heritage", - "power": "1325 W (at End of Life) Two 24 AH NiCd batteries", - "ttc": "S-band", - "attitude_and_orbit_control": "3-axis stabilised with 4 Reaction Wheels, Gyros and Star sensors, Hydrazine based RCS", - "solid_state_recorder": "16 Gb", - "launch_date": "October 12, 2011", - "launch_site": "SDSC SHAR Centre, Sriharikota, India", - "launch_vehicle": "PSLV- C18" - }, - { - "name": "GSAT-12", - "id": 52, - "mission": "Communication", - "weight": "1410 kg (Mass at Lift \u2013 off) 559 kg (Dry Mass)", - "power": "Solar array providing 1430 Watts and one 64 Ah Li-Ion batteries", - "physical_dimensions": "1.485 x 1.480 x 1.446 m cuboid", - "propulsion": "440 Newton Liquid Apogee Motors (LAM) with Mono Methyl Hydrazine (MMH) as fuel and Mixed oxides of Nitrogen (MON-3) as oxidizer for orbit raising.", - "attitude_orbit_control": "3-axis body stabilised in orbit using Earth Sensors, Sun Sensors, Momentum and Reaction Wheels, Magnetic Torquers and eight 10 Newton and eight 22 Newton bipropellant thrusters", - "antennae": "One 0.7 m diameter body mounted parabolic receive antenna and one 1.2 m diameter polarisation sensitive deployable antenna", - "launch_date": "July 15, 2011", - "launch_site": "SHAR, Sriharikota, India", - "launch_vehicle": "PSLV-C17", - "orbit": "Geosynchronous (83\u00b0 longitude)", - "mission_life": "About 8 Years" - }, - { - "name": "GSAT-8", - "id": 51, - "mission": "Communication", - "weight": "3093 kg (Mass at Lift \u2013 off) 1426 kg (Dry Mass)", - "power": "Solar array providing 6242 watts three 100 Ah Lithium Ion batteries", - "physical_dimensions": "2.0 x 1.77 x 3.1m cuboid", - "propulsion": "440 Newton Liquid Apogee Motors (LAM) with mono Methyl Hydrazine (MMH) as fuel and Mixed oxides of Nitrogen (MON-3) as oxidizer for orbit raising.", - "stabilisation": "3-axis body stabilised in orbit using Earth Sensors, Sun Sensors, Momentum and Reaction Wheels, Magnetic Torquers and eight 10 Newton and eight 22 Newton bipropellant thrusters", - "antennas": "Two indigenously developed 2.2 m diameter transmit/receive polarisation sensitive dual grid shaped beam deployable reflectors with offset-fed feeds illumination for Ku-band; 0.6 m C-band and 0.8x0.8 sq m L-band helix antenna for GAGAN", - "launch_date": "May 21, 2011", - "launch_site": "Kourou, French Guiana", - "launch_vehicle": "Ariane-5 VA-202", - "orbit": "Geosynchronous (55\u00b0 E)", - "mission_life": "More Than 12 Years" - }, - { - "name": "RESOURCESAT-2", - "id": 50, - "mission": "Remote Sensing", - "orbit": "Circular Polar Sun Synchronous", - "orbit_altitude_at_injection": "822 km + 20 km (3 Sigma)", - "orbit_inclination": "98.731\u00ba + 0.2\u00ba", - "lift-off_mass": "1206 kg", - "orbit_period": "101.35 min", - "number_of_orbits_per_day": "14", - "local_time_of_equator_crossing": "10:30 am", - "repetivity": "24 days", - "attitude_and_orbit_control": "3-axis body stabilised using Reaction Wheels, Magnetic Torquers and Hydrazine Thrusters", - "power": "Solar Array generating 1250 W at End Of Life, two 24 AH Ni-Cd batteries", - "launch_date": "April 20, 2011", - "launch_site": "SHAR Centre Sriharikota India", - "launch_vehicle": "PSLV- C16", - "mission_life": "5 years" - }, - { - "name": "YOUTHSAT", - "id": 49, - "lift-off_mass": "92 kg", - "orbit_period": "101.35 min", - "dimension": "1020 (Pitch) x 604 (Roll) x 1340 (Yaw) mm3", - "attitude_and_orbit_control": "3-axis body stabilised using Sun and Star Sensors, Miniature Magnetometer, Miniature Gyros, Micro Reaction Wheels and Magnetic Torquers", - "power": "Solar Array generating 230 W, one 10.5 AH Li-ion battery", - "mechanisms": "Paraffin Actuator based Solar Panel Hold Down and Release Mechanism", - "launch_date": "April 20, 2011", - "launch_site": "SHAR Centre Sriharikota India", - "launch_vehicle": "PSLV- C16", - "orbit": "Circular Polar Sun Synchronous", - "orbit_altitude_at_injection": "822 km\u00a0+\u00a020 km (3 Sigma)", - "orbit_inclination": "98.731 \u00ba\u00a0+\u00a00.2 \u00ba", - "mission_life": "2 years" - }, - { - "name": "CARTOSAT-2B", - "id": 48, - "mission": "Remote Sensing", - "weight": "694 kg (Mass at lift off)", - "onboard_orbit": "930 Watts", - "stabilization": "3 \u2013 axis body stabilised based on inputs from star sensors and gyros using Reaction wheels, Magnetic Torquers and Hydrazine Thrusters", - "payloads": "Panchromatic Camera", - "launch_date": "July 12, 2010", - "launch_site": "SHAR Centre Sriharikota India", - "launch_vehicle": "PSLV- C15", - "orbit": "630 kms, Polar Sun Synchronous", - "inclination": "97.71\u00ba" - }, - { - "name": "Oceansat-2", - "id": 47, - "date": "Sept 23, 2009", - "launch_site": "SHAR, Sriharikota", - "launch_vehicle": "PSLV - C14", - "orbit": "Polar Sun Synchronous", - "altitude": "720 km", - "inclination": "98.28\u00b0", - "period": "99.31 minutes", - "local_time_of_eq._crossing": "12 noon \u00b1 10 minutes", - "repetitivity_cycle": "2 days", - "payloads": "OCM, SCAT and ROSA", - "mass_at_lift_off": "960 kg", - "power": "15 Sq.m Solar panels generating 1360W, Two 24 Ah Ni-Cd Batteries", - "mission_life": "5 years" - }, - { - "name": "RISAT-2", - "id": 46, - "altitude": "550 km", - "inclination": "41 deg", - "orbit_period": "90 minutes", - "mass": "300 kg" - }, - { - "name": "Chandrayaan-1 ", - "id": 45, - "mission": "Remote Sensing, Planetary Science", - "weight": "1380 kg (Mass at lift off)", - "onboard_power": "700 Watts", - "stabilization": "3 - axis stabilised using reaction wheel and attitude control thrusters, sun sensors, star sensors, fibre optic gyros and accelerometers for attitude determination.", - "launch_date": "22 October 2008", - "launch_site": "SDSC, SHAR, Sriharikota", - "launch_vehicle": "PSLV - C11", - "orbit": "100 km x 100 km : Lunar Orbit", - "mission_life": "2 years" - }, - { - "name": "IMS-1", - "id": 44, - "orbit": "Polar Sun Synchronous", - "altitude": "635 km", - "mission_life": "2 years", - "physical_dimensions": "0.604x0.980x1.129 m", - "mass": "83 kg", - "power": "Two deployable sun pointing solar panels generating 220 W power, 105 Ah Lithium ion battery", - "telemetry,_tracking_and_command": "S-band", - "attitude_and_orbit_control_system": "Star Sensor, Miniature Sun Sensors, Magnetometers Gyros, Miniature Micro Reaction Wheels, Magnetic Torquers, single 1 N Hydrazine Thruster", - "data_handling": "S-band", - "data_storage": "16 Gb Solid State Recorder" - }, - { - "name": "CARTOSAT \u2013\n2A", - "id": 43, - "mission": "Remote Sensing", - "weight": "690 Kg (Mass at lift off)", - "onboard_power": "900 Watts", - "stabilization": "3 \u2013 axis body stabilised using high torque reaction wheels, magnetic torquers and hydrogen thrusters", - "payloads": "Panchromatic Camera", - "launch_date": "28 April 2008", - "launch_site": "SHAR Centre Sriharikota India", - "launch_vehicle": "PSLV- C9", - "orbit": "635 km, Polar Sun Synchronous", - "inclination": "97.94 deg", - "mission_life": "5 years" - }, - { - "name": "INSAT-4CR", - "id": 42, - "mission": "Communication", - "weight": "2,130 kg (Mass at Lift \u2013 off)", - "onboard_power": "3000 W", - "communication_payload": "12 Ku-band transponders employing 140 W Traveling Wave Tube Amplifiers (TWTA) Ku-band Beacon", - "launch_date": "September 2, 2007", - "launch_site": "SHAR, Sriharikota, India", - "launch_vehicle": "GSLV-F04", - "orbit": "Geosynchronous (74\u00b0 E)", - "mission_life": "12 Years" - }, - { - "name": "INSAT-4B", - "id": 41, - "mission": "Communication", - "weight": "3025 kg (at Lift \u2013 off)", - "onboard_power": "5859 W", - "stabilization": "It uses 3 earth sensors, 2 digital sun sensors, 8 coarse analog sun sensors, 3 solar panel sun sensors and one sensor processing electronics. The wheels and wheel drive electronics were imported with indigenous wheel interface module to interface the wheel drive electronics and AOCE.", - "propulsion": "The propulsion system is employing 16 thrusters, 4 each located on east, west and AY sides and 2 each on north and south sides. There is one 440 N liquid apogee motor (using Mono Methyl Hydrazine (MMH) as fuel and oxides of Nitrogen (MON3 as oxidizer) and three pressurant tanks mounted on the LAM deck.", - "payload": "12 Ku band high power transponders covering Indian main land using 140W radiatively cooled TWTAs.", - "launch_date": "March 12, 2007", - "launch_site": "French Guiana", - "launch_vehicle": "Ariane5", - "orbit": "Geostationary (93.5o E Longitude)", - "mission_life": "12 Years" - }, - { - "name": "CARTOSAT-2", - "id": 40, - "mission": "Remote Sensing", - "weight": "650 Kg", - "onboard_orbit": "900 Watts", - "stabilization": "3 - axis body stabilised using high torque reaction wheels, magnetic torquers and thrusters", - "payloads": "Panchromatic Camera", - "launch_date": "10 January 2007", - "launch_site": "SHAR Centre Sriharikota India", - "launch_vehicle": "PSLV- C7", - "orbit": "Polar Sun Synchronous", - "mission_life": "5 years" - }, - { - "name": "INSAT-4A", - "id": 39, - "spacecraft_mass": "Lift off 3081 Kg Dry Mass 1386.55 Kg", - "orbit": "Geostationary ( 83o E)", - "power": "Solar Array to provide a power of 5922 W", - "battery": "Three 70 Ah Ni H2 Batteries for eclipse support of 4264 W", - "life": "12 Years", - "launch_date": "December 22, 2005", - "launch_vehicle": "ARIANE5-V169" - }, - { - "name": "CARTOSAT-1", - "id": 38, - "launch_date": "5 May 2005", - "launch_site": "SHAR Centre Sriharikota India", - "launch_vehicle": "PSLV- C6", - "orbit": "618 km Polar Sun Synchronous", - "payloads": "PAN FORE, PAN - AFT", - "orbit_period": "97 min", - "number_of_orbits_per_day": "14", - "local_time_of_equator_crossing": "10:30 am", - "repetivity": "126 days", - "revisit": "5 days", - "lift-off_mass": "1560 kg", - "attitude_and_orbit_control": "3-axis body stabillised using reaction wheels, Magnetic Torquers and Hydrazine Thrusters", - "electrical_power": "15 sqm Solar Array generating 1100w, Two 24 Ah Ni-Cd batteries", - "mission_life": "5 years" - }, - { - "name": "HAMSAT", - "id": 37, - "launch_date": "May 5, 2005", - "launch_site": "SHAR Centre, Sriharikota, India", - "launch_vehicle": "PSLV-C6", - "orbit": "Geo-synchronous, 633.355 km (average)", - "payloads": "2 Transponders" - }, - { - "name": "EDUSAT", - "id": 36, - "mission": "Education", - "spacecraft_mass": "1950.5 kg mass (at Lift - off) 819.4 kg (Dry mass)", - "onboard_power": "Total four solar panel of size 2.54 M x 1.525 M generating 2040 W (EOL), two 24 AH NiCd batteries for eclipse support", - "stabilization": "3 axis body stabilised in orbit using sensors, momentum and reaction wheels, magnetic torquers and eight 10 N & 22N reaction control thrusters.", - "propulsion": "440 N Liquid Apogee Motor with MON - 3 and MMH for orbit raising", - "payload": "Six upper extended C - band transpondersFive lower Ku band transponders with regional beam coverage One lower Ku band National beam transponder with Indian main land coverageKu beacon12 C band high power transponders with extended coverage, covering southeast and northwest region apart from Indian main land using 63 W LTWTAs", - "launch_date": "September 20, 2004", - "launch_site": "SHAR, Sriharikota, India", - "launch_vehicle": "GSLV-F01", - "orbit": "Geostationary (74oE longitude)", - "mission_life": "7 Years (minimum)" - }, - { - "name": "IRS-P6 / RESOURCESAT-1", - "id": 35, - "launch_date": "October 17, 2003", - "launch_site": "SHAR, Sriharikota", - "launch_vehicle": "PSLV-C5", - "payloads": "LISS-4, LISS-3, AWiFS-A, AWiFS-B", - "orbit": "Polar Sun Synchronous", - "orbit_height": "817 km", - "orbit_inclination": "98.7o", - "orbit_period": "101.35 min", - "number_of_orbits_per_day": "14", - "local_time_of_equator_crossing": "10:30 am", - "repetivity_(liss-3)": "24 days", - "revisit": "5 days", - "lift-off_mass": "1360 kg", - "attitude_and_orbit_control": "3-axis body stabilised using Reaction Wheels, Magnetic Torquers and Hydrazine Thrusters", - "power": "Solar Array generating 1250 W, Two 24 Ah Ni-Cd batteries", - "mission_life": "5 years" - }, - { - "name": "INSAT-3E", - "id": 34, - "mission": "Communication", - "spacecraft_mass": "2,775 kg (Mass at Lift-off) 1218 kg (Dry mass)", - "launch_date": "September 28, 2003", - "launch_site": "French Guyana", - "launch_vehicle": "Ariane5-V162", - "orbit": "Geostationary Orbit" - }, - { - "name": "GSAT-2", - "id": 33, - "mission": "Communication", - "weight": "1800 kg", - "launch_date": "May 8, 2003", - "launch_site": "SHAR, Sriharikota, India", - "launch_vehicle": "GSLV\u2013D2", - "orbit": "Geostationary orbit (48oE longitude)" - }, - { - "name": "INSAT-3A", - "id": 32, - "mission": "Telecommunication, broadcasting and Meteorology", - "spacecraft_mass": "2,950 kg (Mass at Lift\u2013off) 1,348 kg (Dry mass)", - "onboard_power": "3,100 W", - "stabilization": "3 \u2013 axis body stabilised in orbit using momentum and reaction wheels, solar flaps, magnetic torquers and eight 10 N and eight 22 N reaction control thrusters", - "propulsion": "440 N Liquid Apogee Motor with MON-3 (Mixed Oxides of Nitrogen) and MMH (Mono Methyl Hydrazine) for orbit raising", - "payload": "Communication payload- 12 C \u2013 band transponders, - 6 upper extended C band transponders - 6 Ku band transponders - 1 Satellite Aided Search & Rescue transponders Meteorological payload- Very High Resolution Radiometer (VHRR) with 2 km resolution in visible band and 8 km resolution in infrared and water vapour band- Charged Coupled Device (CCD) camera operating in visible, near infrared and shortwave infrared band with 1 km resolution.- Data Relay Transponders (DRT)", - "launch_date": "April 10, 2003", - "launch_site": "French Guyana", - "launch_vehicle": "Ariane5-V160", - "orbit": "Geostationary (93.5o E longitude)", - "mission_life": "12 Years" - }, - { - "name": "KALPANA-1", - "id": 31, - "mission": "7 Years", - "spacecraft_mass": "1060 kg mass (at Lift \u2013 off) 498 kg (Dry mass)", - "onboard_power": "550 W", - "payload": "Very High Resolution Radiometer (VHRR) Data Relay Transponder (DRT)", - "launch_date": "12 September 2002", - "launch_site": "SHAR, Sriharikota", - "launch_vehicle": "PSLV \u2013 C4", - "orbit": "Geostationary (74 deg East longitude)" - }, - { - "name": "INSAT-3C", - "id": 30, - "mission": "Communication, broadcasting and Meteorology", - "spacecraft_mass": "2,650 kg (Mass at Lift - off) 1218 kg (Dry mass)", - "onboard_power": "2765 W", - "propulsion": "Liquid Apogee Motor with fuel and oxidizer stored in separate titanium tanks and pressurant in Kevlar wound titanium tank.", - "payload": "24 C band transponders 6 Extended C - band Transponders 2 S - band Transponders", - "launch_date": "January 24, 2002", - "launch_site": "French Guyana", - "launch_vehicle": "Ariane5-V147", - "orbit": "Geostationary (74o longitude)", - "mission_life": "Very long" - }, - { - "name": "The Technology Experiment Satellite\n(TES)", - "id": 29, - "launch_date": "22 October 2001", - "launch_site": "SHAR Centre Sriharikota India", - "launch_vehicle": "PSLV- C3", - "orbit": "572 km Sun Synchronous", - "payloads": "PAN" - }, - { - "name": "PSLV-C3 / TES", - "id": 28, - "launch_date": "22 October 2001", - "launch_site": "SHAR Centre Sriharikota India", - "launch_vehicle": "PSLV- C3", - "orbit": "572 km Sun Synchronous", - "payloads": "PAN" - }, - { - "name": "GSAT-1", - "id": 27, - "mission": "Communication", - "weight": "1530 kg", - "launch_date": "18 April 2001", - "launch_site": "SHAR, Sriharikota", - "launch_vehicle": "GSLV \u2013 D1", - "orbit": "Sun Synchronous Geo stationary orbit" - }, - { - "name": "INSAT-3B", - "id": 26, - "mission": "Very long", - "spacecraft_mass": "2,070 (Mass at Lift \u2013 off) 970 kg (Dry mass)", - "onboard_power": "1,712 W", - "stabilization": "3 \u2013 axis body stabilised biased momentum control system using earth sensors, sun sensors, inertial reference unit, momentum / reaction wheels, magnetic torquers and unified bi-propellant thrusters.", - "propulsion": "Liquid Apogee Motor with fuel and oxidizer stored in separate titanium tanks and pressurant in Kevlar wound titanium tank.", - "payload": "12 extended C \u2013 band Transponders Five Ku band Transponders Mobile Satellite Services (MSS)", - "launch_date": "22nd March 2000", - "launch_site": "French Guyana", - "launch_vehicle": "Ariane -5", - "orbit": "Geostationary (83 deg East longitude)", - "inclination": "7 deg" - }, - { - "name": "Oceansat(IRS-P4)", - "id": 25, - "launch_date": "May 26, 1999", - "launch_site": "SHAR, Sriharikota", - "launch_vehicle": "PSLV - C2", - "orbit": "Polar Sun Synchronous", - "altitude": "720 km", - "inclination": "98.28 deg", - "period": "99.31 min", - "local_time_of_eq._crossing": "12 noon", - "repetitivity_cycle": "2 days", - "size": "2.8m x 1.98m x 2.57m", - "mass_at_lift_off": "1050 kg", - "length_when_fully_deployed": "11.67 m", - "attitude_and_orbit_control": "3-axis body-stabilised using Reaction Wheels, Magnetic Torquers and Hydrazine Thrusters", - "power": "9.6 Sq.m Solar Array generating 750w Two 21 Ah Ni-Cd Batteries", - "mission_completed_on": "August 8, 2010" - }, - { - "name": "INSAT-2E", - "id": 24, - "mission": "Communication and Meteorology", - "spacecraft_mass": "2,550 kg (Mass at Lift-off) 1150 kg (Dry mass)", - "launch_date": "03 April 1999", - "launch_site": "French Guyana", - "launch_vehicle": "Ariane \u2013 42P", - "orbit": "Geosynchronous (83 deg east longitude)" - }, - { - "name": "IRS-1D", - "id": 23, - "mission": "Operational Remote Sensing", - "weight": "1250 kg", - "onboard_power": "809 Watts (generated by 9.6 sq.metres Solar Panels)", - "communication": "S-band, X-band", - "stabilization": "Three axis body stabilized (zero momentum) with 4 Reaction Wheels, Magnetic torquer", - "rcs": "Monopropellant Hydrazine based with sixteen 1 N thrusters & one 11N thrusters", - "payload": "Three solid state Push Broom Cameras: PAN (<6 metre solution )LlSS-3(23.6 metre resolution) and WiFS (189 metre resolution)", - "onboard_tape_recorder": "Storage Capacity : 62 G bits", - "launch_date": "December 28, 1995", - "launch_site": "Baikanur Cosmodrome Kazakhstan", - "launch_vehicle": "Molniya", - "orbit": "817 km Polar Sun-synchronous", - "inclination": "98.69o", - "repetivity": "24 days", - "local_time": "10.30 a.m", - "mission_completed_on": "September 21, 2007" - }, - { - "name": "INSAT-2D", - "id": 22, - "mission": "Communication", - "weight": "2079 kg with propellants, 995 kg dry weight", - "onboard_power": "1650 Watts", - "communication": "C, extended C, S and Ku bands", - "stabilization": "Three axis stabilized with two Momentum Wheels & one Reaction Wheel, Magnetic torquers", - "propulsion": "Integrated bipropellan stystem ( MMH and N2 04) With sixteen 22N thrusters and 440N LAM.", - "payload": "Transponders: 16C-band / extended C-band transponders (forFSS), 2 high power C-band transponders (for BSS), 1S-band transponder (for BSS),1C/S-band mobile communication transponder, 3 Ku-band transponders", - "launch_date": "June 4, 1997", - "launch_site": "French Guyana", - "launch_vehicle": "Arianev 4", - "orbit": "Geostationary 93,.5deg.E", - "inclination": "0 deg." - }, - { - "name": "IRS-P3", - "id": 21, - "mission": "Remote sensing of earth's natural resources. Study of X-ray Astronomy. Periodic calibration of PSLV tracking radar located at tracking stations.", - "weight": "920 kg", - "onboard_power": "817 Watts", - "communication": "S-band", - "stabilization": "Three axis body stabilized", - "rcs": "Combinations of bladder type and surface tension type mass expulsion monopropellant hydrazine system", - "payload": "WideField Sensor (WiFS), Modular Opto - electronic Scanner (MOS), Indian X-ray Astronomy Experiment (IXAE), C-band transponder(CBT)", - "launch_date": "March 21, 1996", - "launch_site": "SHAR Centre, Sriharikota, India", - "launch_vehicle": "PSLV-D3", - "orbit": "817 km. Circular polar sun-synchronous with equatorial crossing at 10.30 am (descending node)", - "inclination": "98.68o", - "repetivity": "WiFS : 5 days", - "mission_completed_during": "January 2006" - }, - { - "name": "IRS-1C", - "id": 20, - "mission": "Operational Remote Sensing", - "weight": "1250 kg", - "onboard_power": "809 Watts (generated by 9.6 sq.metres Solar Panels)", - "communication": "S-band, X-band", - "stabilization": "Three axis body stabilized (zero momentum) with 4 Reaction Wheels, Magnetic torquer", - "rcs": "Monopropellant Hydrazine based with sixteen 1 N thrusters & one 11N thrusters", - "payload": "Three solid state Push Broom Cameras: PAN (<6 metre solution )LlSS-3(23.6 metre resolution) and WiFS (189 metre resolution)", - "onboard_tape_recorder": "Storage Capacity : 62 G bits", - "launch_date": "December 28, 1995", - "launch_site": "Baikanur Cosmodrome Kazakhstan", - "launch_vehicle": "Molniya", - "orbit": "817 km Polar Sun-synchronous", - "inclination": "98.69o", - "repetivity": "24 days", - "local_time": "10.30 a.m", - "mission_completed_on": "September 21, 2007" - }, - { - "name": "INSAT-2C", - "id": 19, - "mission": "Communication", - "weight": "2106 kg with propellants 946 kg dry weight", - "onboard_power": "1320 Watts", - "communication": "C extended C, S and Ku bands", - "stabilization": "Three axis stabilized with two Momen'tum Wheels & one Reaction Wheel, Magnetic torquers", - "propulsion": "Integrated bipropellant system ( MMH and N2 04) With sixteen 22N thrusters and 440N LAM.", - "payload": "Transponders: 16C-band / extended C-band transponders (for FSS), 2 high power C-band transponders (for BSS), 1S-band transponder (for BSS),1C/S-band mobile communication transponder, 3 Ku-band transponders", - "launch_date": "December 7, 1995", - "launch_site": "French Guyana", - "launch_vehicle": "Ariane4", - "orbit": "Geostationary 93.5 deg E", - "inclination": "0 deg.", - "mission_life": "Seven years(nominal)", - "orbit_life": "Very Long" - }, - { - "name": "IRS-P2", - "id": 18, - "mission": "Operational Remote Sensing", - "weight": "804 kg", - "onboard_power": "510 Watts", - "communication": "S-band, X-band", - "stabilization": "Three axis body stabilized with 4 Reaction Wheels, Magnetic torquers", - "rcs": "4 tanks containing Monopropellant Hydrazine based with sixteen 1 N thrusters and one 11 N thruster", - "payload": "Two solid state Push Broom Cameras operating in four spectral bands in the visible and near-IR range using CCD arrays: LlSS-2A & LlSS-2B (Resolution: 32.74 metre)", - "launch_date": "October 15, 1994", - "launch_site": "SHAR Centre, Sriharikota, India", - "launch_vehicle": "PSLV-D2", - "inclination": "98.68o", - "repetivity": "24 days", - "mission_completed_on": "1997" - }, - { - "name": "SROSS-C2", - "id": 17, - "mission": "Experimental", - "weight": "115 kg", - "onboard_power": "45 Watts", - "communication": "S-band and VHF", - "rcs": "Monopropellant Hydrazine based with six 1 Newton thrusters", - "payload": "Gamma Ray Burst (GRB) & Retarding Potential Analyser (RPA)", - "launch_date": "May 04,1994", - "launch_site": "SHAR Centre,Sriharikota,India", - "launch_vehicle": "Augmented Satellite Launch Vehicle (ASLV)", - "orbit": "430 x 600 km.", - "inclination": "45 deg.", - "mission_life": "Six months (nominal)", - "orbital_life": "Two years (nominal)" - }, - { - "name": "IRS-1E", - "id": 16, - "mission": "Operational Remote Sensing", - "weight": "846 kg", - "onboard_power": "415 Watts", - "communication": "S-band (TIC) & VHF", - "stabilization": "Three axis body stabilized ( zero momentum) with 4 Reaction Wheels, Magnetic torquers", - "rcs": "Monopropellant Hydrazine based RCS with 1 Newton thrusters ( 16 Nos.)", - "payload": "LlSS-1 MEOSS (Mono-ocula Erlectro Optic Stereo Scanner)", - "launch_date": "September 20, 1993", - "launch_site": "SHAR Centre, Sriharikota, India", - "launch_vehicle": "PSLV-D1", - "orbit": "Not realised" - }, - { - "name": "INSAT-2B", - "id": 15, - "mission": "Multipurpose Communication, meteorology and Satellite based search and rescue", - "weight": "1906 kg with propellant 916 kg dry weight", - "onboard_power": "One KW approx.", - "communication": "C, extended C and S band", - "stabilization": "Three axis body stabilized with two Momentum Wheels & one Reaction Wheel, Magnetic torquers", - "propulsion": "Integrated bipropellant system ( MMH and N2 04) With sixteen 22 N thrusters and 440 N LAM.", - "payload": "Transponders: 12C-band (for FSS),6 ext. C-band (for FSS) 2S-band (for BSS),1Data relay transponder (for met.data), 1 transponder for research and rescue, Very High Resolution radiometer (VHRR) for meteorological observation with 2 km resolution in the visible and 8 km resolution in the IR band", - "launch_date": "July 23, 1993", - "launch_site": "French Guyana", - "launch_vehicle": "Ariane 4", - "orbit": "Geostationary 93.5o E", - "inclination": "0o", - "mission_life": "Seven years(nominal)", - "orbit_life": "Very Long" - }, - { - "name": "INSAT-2A", - "id": 14, - "mission": "Multipurpose Communication, meteorology and Satellite based search and rescue", - "weight": "1906 kg with propellant 916 kg dry weight", - "onboard_power": "One KW approx", - "communication": "C, extended C and S band", - "stabilization": "Three axis body stabilized with two Momentum Wheels & one Reaction Wheel, Magnetic torquers", - "propulsion": "Integrated bipropellant system (MMH and N2 04) With sixteen 22 N thrusters and 440 LAM.", - "payload": "Transponders: 12 C-band (for FSS),6 ext. C-band (for FSS) 2 S-band (for BSS),1Data relay transponder (for met.data), 1 transponder for research and rescue, Very High Resolution radiometer (VHRR) for meteorological observation with 2 km resolution in the visible and 8 km resolution in the IR band", - "launch_date": "July 10,1992", - "launch_site": "French Guyana", - "launch_vehicle": "Ariane 4", - "orbit": "Geostationary 74oE longitude", - "inclination": "0o", - "mission_life": "Seven years(nominal)", - "orbit_life": "Very Long" - }, - { - "name": "SROSS-C\n", - "id": 13, - "mission": "Experimental", - "weight": "106.1 kg", - "onboard_power": "45 Watts", - "communication": "S-band and VHF", - "stabilization": "Spin stabilized with a Magnetic Torquer and Magnetic Bias Control", - "payload": "Gamma Ray Burst (GRB) experiment & Retarding Potential Analyser (RPA) experiment", - "launch_date": "May 20,1992", - "launch_site": "SHAR Centre, Sriharikota, India", - "launch_vehicle": "Augmented Satellite Launch Vehicle (ASLV)", - "orbit": "267 x 391 km", - "mission_life": "Two months (Re-entered on July15,1992)" - }, - { - "name": "IRS-1B", - "id": 12, - "mission": "Operational Remote Sensing", - "weight": "975 kg", - "onboard_power": "600 Watts", - "communication": "S-band, X-band and VHF (commanding only)", - "stabilization": "Three axis body stabilized (zero momentum) with 4 Reactions Wheels, Magnetic torquers", - "rcs": "Monopropellant Hydrazine based with sixteen 1 Newton thrusters", - "payload": "Three solid state Push Broom Cameras LlSS-1 (72.5 metre resolution), LlSS-2A and LlSS-2B (36.25 metre resolution)", - "launch_date": "August 29, 1991", - "launch_site": "Baikanur Cosmodrome Kazakhstan", - "launch_vehicle": "Vostok", - "orbit": "904 km Polar Sun Synchronous", - "inclination": "99.08o", - "repetivity": "22 days", - "local_time": "10.30 a.m. (descending node)", - "mission_completed_on": "December 20, 2003" - }, - { - "name": "SROSS-2", - "id": 11, - "mission": "Experimental", - "weight": "150 kg", - "onboard_power": "90 Watts", - "communication": "S-band and VHF", - "stabilization": "Three axis body stabilized (biased momentum) with a MomentumWheel and Magnetic Torquer", - "propulsion_system": "Monopropellant (Hydrazine based) Reaction Control System", - "payload": "Gamma Ray Burst (GRB) payload and Mono PayloadOcular Electro-Optic Stereo Scanner (MEOSS) built by DLR, Germany", - "launch_date": "July 13, 1988", - "launch_site": "SHAR Centre, Sriharikota, India", - "launch_vehicle": "Augmented Satellite Launch Vehicle (ASLV)", - "orbit": "Not realised" - }, - { - "name": "IRS-1A", - "id": 10, - "mission": "Operational Remote Sensing", - "weight": "975 kg", - "onboard_power": "600 Watts", - "communication": "S-band, X-band and VHF(commanding only)", - "stabilization": "Three axis body stabilized (zero momentum)with 4 Reactions Wheels, Magnetic torquers", - "rcs": "Monopropellant Hydrazine based with sixteen 1 Newton thrusters", - "payload": "Three solid state Push Broom Cameras: LISS-1(72.5 metre resolution),LISS-2A and LISS-2B (36.25 metre resolution)", - "launch_date": "March 17, 1988", - "launch_site": "Baikanur Cosmodrome Kazakhstan", - "launch_vehicle": "Vostok", - "orbit": "904 km Polar Sun-synchronous", - "inclination": "99.08o", - "repetivity": "22 days (307 orbits)", - "local_time": "10.30 a.m. (descending node)", - "mission_completed_during": "July 1996" - }, - { - "name": "SROSS-1\n", - "id": 9, - "mission": "Experimental", - "weight": "150 kg", - "onboard_power": "90 Watts", - "communication": "S-band and VHF", - "stabilization": "Three axis body stabilized (biased momentum) with a Momentum Wheel and Magnetic Torquer", - "propulsion_system": "Monopropellant (Hydrazine based) Reaction control system", - "payload": "Launch Vehicle Monitoring Platform(LVMP), Gamma Ray Burst (GRB) payload and Corner Cube Retro Reflector (CCRR) for laser tracking", - "launch_date": "March 24, 1987", - "launch_site": "SHAR Centre, Sriharikota, India", - "launch_vehicle": "Augmented Satellite Launch Vehicle (ASLV)", - "orbital_life": "Not realised" - }, - { - "name": "Rohini Satellite RS-D2", - "id": 8, - "mission": "Experimental", - "weight": "41.5 kg", - "onboard_power": "16 Watts", - "communication": "VHF band", - "stabilization": "Spin stabilized", - "payload": "Smart sensor (remote sensing payload),L-band beacon", - "launch_date": "April 17, 1983", - "launch_site": "SHAR Centre, Sriharikota, India", - "launch_vehicle": "SLV-3", - "orbit": "371 x 861 km", - "inclination": "46o", - "mission_life": "17 months", - "orbital_life": "Seven years (Re-entered on April 19, 1990)" - }, - { - "name": "Bhaskara-II", - "id": 7, - "mission": "Experimental Remote Sensing", - "weight": "444 kg", - "onboard_power": "47 Watts", - "communication": "VHF band", - "stabilization": "Spin stabilized (spin axis controlled)", - "payload": "TV cameras, three band Microwave Radiometer (SAMIR)", - "launch_date": "Nov 20, 1981", - "launch_site": "Volgograd Launch Station (presently in Russia)", - "launch_vehicle": "C-1 Intercosmos", - "orbit": "541 x 557 km", - "inclination": "50.7o", - "mission_life": "One year (nominal)", - "orbital_life": "About 10 years ( Re-entered in 1991 )" - }, - { - "name": "APPLE", - "id": 6, - "mission": "Experimental geostationary communication", - "weight": "670 kg", - "onboard_power": "210 Watts", - "communication": "VHF and C-band", - "stabilization": "Three axis stabilized (biased momentum) with Momentum Wheels, Torquers & Hydrazine based Reaction control system", - "payload": "C - band transponders (Two)", - "launch_date": "June19,1981", - "launch_site": "Kourou (CSG), French Guyana", - "launch_vehicle": "Ariane -1(V-3)", - "orbit": "Geosynchronous (102 deg. E longitude, over Indonesia)", - "inclination": "Near zero", - "mission_life": "Two years" - }, - { - "name": "Rohini Satellite RS-D1", - "id": 5, - "mission": "Experimental", - "weight": "38 kg", - "onboard_power": "16 Watts", - "communication": "VHF band", - "stabilization": "Spin stabilized", - "payload": "Landmark Tracker ( remote sensing payload)", - "launch_date": "May 31,1981", - "launch_site": "SHAR Centre, Sriharikota, India", - "launch_vehicle": "SLV-3", - "orbit": "186 x 418 km (achieved)", - "inclination": "46 deg", - "orbital_life": "Nine days" - }, - { - "name": "Rohini Satellite RS-1", - "id": 4, - "mission": "Experimental", - "weight": "35 kg", - "onboard_power": "16 Watts", - "communication": "VHF band", - "stabilization": "Spin stabilized", - "payload": "Launch vehicle monitoring instruments", - "launch_date": "July 18,1980", - "launch_site": "SHAR Centre, Sriharikota, India", - "launch_vehicle": "SLV-3", - "orbit": "305 x 919 km", - "inclination": "44.7 deg.", - "mission_life": "1.2 years", - "orbital_life": "20 months" - }, - { - "name": "Rohini Technology Payload (RTP)", - "id": 3, - "mission": "Experimental", - "weight": "35 kg", - "onboard_power": "3 Watts", - "communication": "VHF band", - "stabilization": "Spin stabilized (spin axis controlled)", - "payload": "Launch vehicle monitoring instruments", - "launch_date": "August 10,1979", - "launch_site": "SHAR Centre, Sriharikota, India", - "launch_vehicle": "SLV-3", - "orbit": "Not achieved" - }, - { - "name": "Bhaskara-I", - "id": 2, - "mission": "Experimental Remote Sensing", - "weight": "442 kg", - "onboard_power": "47 Watts", - "communication": "VHF band", - "stabilization": "Spin stabilized (spin axis controlled)", - "payload": "TVcameras, three band Microwave Radiometer (SAMIR)", - "launch_date": "Jun 07,1979", - "launch_site": "Volgograd Launch Station (presently in Russia)", - "launch_vehicle": "C-1Intercosmos", - "orbit": "519 x 541 km", - "inclination": "50.6 deg", - "mission_life": "One year (nominal)", - "orbital_life": "About 10 years ( Re-entered in 1989 )" - }, - { - "name": "Aryabhata ", - "id": 1, - "mission": "Scientific/ Experimental", - "weight": "360 kg", - "on_board_power": "46 Watts", - "communication": "VHF band", - "stabilization": "Spinstabilize", - "payload": "X-ray Astronomy Aeronomy & Solar Physics", - "launch_date": "April 19, 1975", - "launch_site": "Volgograd Launch Station (presently in Russia)", - "launch_vehicle": "C-1 Intercosmos", - "orbit": "563 x 619 km", - "inclination": "50.7 deg", - "mission_life": "6 months(nominal), Spacecraft mainframe active till March,1981", - "orbital_life": "Nearly seventeen years (Re-entered on February 10,1992)" - } -] +{ + "spacecraft_missions": [ + { + "id": 1, + "name": "Aryabhata", + "mission_type": "Scientific/ Experimental", + "launch_date": "1975-04-19", + "launch_site": "Volgograd Launch Station (presently in Russia)", + "launch_vehicle": "C-1 Intercosmos", + "orbit": "563 x 619 km", + "orbit_type": null, + "altitude_km": null, + "inclination_deg": 50.7, + "mass_kg": 360.0, + "power_watts": 46.0, + "mission_life": "6 months", + "status": "decommissioned", + "payloads": "X-ray Astronomy Aeronomy & Solar Physics", + "stabilization": "Spinstabilize", + "propulsion": null + }, + { + "id": 2, + "name": "Bhaskara-I", + "mission_type": "Experimental Remote Sensing", + "launch_date": "1979-06-07", + "launch_site": "Volgograd Launch Station (presently in Russia)", + "launch_vehicle": "C-1Intercosmos", + "orbit": "519 x 541 km", + "orbit_type": null, + "altitude_km": null, + "inclination_deg": 50.6, + "mass_kg": 442.0, + "power_watts": 47.0, + "mission_life": "1 year", + "status": "decommissioned", + "payloads": "TVcameras, three band Microwave Radiometer (SAMIR)", + "stabilization": "Spin stabilized (spin axis controlled)", + "propulsion": null + }, + { + "id": 3, + "name": "Rohini Technology Payload (RTP)", + "mission_type": "Experimental", + "launch_date": "1979-08-10", + "launch_site": "SHAR Centre, Sriharikota, India", + "launch_vehicle": "SLV-3", + "orbit": "Not achieved", + "orbit_type": "Failed", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 35.0, + "power_watts": 3.0, + "mission_life": null, + "status": "failed", + "payloads": "Launch vehicle monitoring instruments", + "stabilization": "Spin stabilized (spin axis controlled)", + "propulsion": null + }, + { + "id": 4, + "name": "Rohini Satellite RS-1", + "mission_type": "Experimental", + "launch_date": "1980-07-18", + "launch_site": "SHAR Centre, Sriharikota, India", + "launch_vehicle": "SLV-3", + "orbit": "305 x 919 km", + "orbit_type": null, + "altitude_km": null, + "inclination_deg": 44.7, + "mass_kg": 35.0, + "power_watts": 16.0, + "mission_life": "1.2 years", + "status": "decommissioned", + "payloads": "Launch vehicle monitoring instruments", + "stabilization": "Spin stabilized", + "propulsion": null + }, + { + "id": 5, + "name": "Rohini Satellite RS-D1", + "mission_type": "Experimental", + "launch_date": "1981-05-31", + "launch_site": "SHAR Centre, Sriharikota, India", + "launch_vehicle": "SLV-3", + "orbit": "186 x 418 km (achieved)", + "orbit_type": null, + "altitude_km": null, + "inclination_deg": 46.0, + "mass_kg": 38.0, + "power_watts": 16.0, + "mission_life": null, + "status": "decommissioned", + "payloads": "Landmark Tracker ( remote sensing payload)", + "stabilization": "Spin stabilized", + "propulsion": null + }, + { + "id": 6, + "name": "APPLE", + "mission_type": "Experimental geostationary communication", + "launch_date": "1981-06-19", + "launch_site": "Kourou (CSG), French Guyana", + "launch_vehicle": "Ariane -1(V-3)", + "orbit": "Geosynchronous (102 deg. E longitude, over Indonesia)", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 670.0, + "power_watts": 210.0, + "mission_life": "2 years", + "status": "decommissioned", + "payloads": "C - band transponders (Two)", + "stabilization": "Three axis stabilized (biased momentum) with Momentum Wheels, Torquers & Hydrazine based Reaction control system", + "propulsion": null + }, + { + "id": 7, + "name": "Bhaskara-II", + "mission_type": "Experimental Remote Sensing", + "launch_date": "1981-11-20", + "launch_site": "Volgograd Launch Station (presently in Russia)", + "launch_vehicle": "C-1 Intercosmos", + "orbit": "541 x 557 km", + "orbit_type": null, + "altitude_km": null, + "inclination_deg": 50.7, + "mass_kg": 444.0, + "power_watts": 47.0, + "mission_life": "1 year", + "status": "decommissioned", + "payloads": "TV cameras, three band Microwave Radiometer (SAMIR)", + "stabilization": "Spin stabilized (spin axis controlled)", + "propulsion": null + }, + { + "id": 8, + "name": "Rohini Satellite RS-D2", + "mission_type": "Experimental", + "launch_date": "1983-04-17", + "launch_site": "SHAR Centre, Sriharikota, India", + "launch_vehicle": "SLV-3", + "orbit": "371 x 861 km", + "orbit_type": null, + "altitude_km": null, + "inclination_deg": 46.0, + "mass_kg": 41.5, + "power_watts": 16.0, + "mission_life": "17 months", + "status": "decommissioned", + "payloads": "Smart sensor (remote sensing payload), L-band beacon", + "stabilization": "Spin stabilized", + "propulsion": null + }, + { + "id": 9, + "name": "SROSS-1", + "mission_type": "Experimental", + "launch_date": "1987-03-24", + "launch_site": "SHAR Centre, Sriharikota, India", + "launch_vehicle": "Augmented Satellite Launch Vehicle (ASLV)", + "orbit": null, + "orbit_type": null, + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 150.0, + "power_watts": 90.0, + "mission_life": null, + "status": "decommissioned", + "payloads": "Launch Vehicle Monitoring Platform(LVMP), Gamma Ray Burst (GRB) payload and Corner Cube Retro Reflector (CCRR) for laser tracking", + "stabilization": "Three axis body stabilized (biased momentum) with a Momentum Wheel and Magnetic Torquer", + "propulsion": "Monopropellant (Hydrazine based) Reaction control system" + }, + { + "id": 10, + "name": "IRS-1A", + "mission_type": "Operational Remote Sensing", + "launch_date": "1988-03-17", + "launch_site": "Baikanur Cosmodrome Kazakhstan", + "launch_vehicle": "Vostok", + "orbit": "904 km Polar Sun-synchronous", + "orbit_type": "SSO", + "altitude_km": null, + "inclination_deg": 99.08, + "mass_kg": 975.0, + "power_watts": 600.0, + "mission_life": null, + "status": "decommissioned", + "payloads": "Three solid state Push Broom Cameras: LISS-1(72.5 metre resolution), LISS-2A and LISS-2B (36.25 metre resolution)", + "stabilization": "Three axis body stabilized (zero momentum) with 4 Reactions Wheels, Magnetic torquers", + "propulsion": "Monopropellant Hydrazine based with sixteen 1 Newton thrusters" + }, + { + "id": 11, + "name": "SROSS-2", + "mission_type": "Experimental", + "launch_date": "1988-07-13", + "launch_site": "SHAR Centre, Sriharikota, India", + "launch_vehicle": "Augmented Satellite Launch Vehicle (ASLV)", + "orbit": "Not realised", + "orbit_type": "Failed", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 150.0, + "power_watts": 90.0, + "mission_life": null, + "status": "failed", + "payloads": "Gamma Ray Burst (GRB) payload and Mono Payload Ocular Electro-Optic Stereo Scanner (MEOSS) built by DLR, Germany", + "stabilization": "Three axis body stabilized (biased momentum) with a Momentum Wheel and Magnetic Torquer", + "propulsion": "Monopropellant (Hydrazine based) Reaction Control System" + }, + { + "id": 12, + "name": "IRS-1B", + "mission_type": "Operational Remote Sensing", + "launch_date": "1991-08-29", + "launch_site": "Baikanur Cosmodrome Kazakhstan", + "launch_vehicle": "Vostok", + "orbit": "904 km Polar Sun Synchronous", + "orbit_type": "SSO", + "altitude_km": null, + "inclination_deg": 99.08, + "mass_kg": 975.0, + "power_watts": 600.0, + "mission_life": null, + "status": "decommissioned", + "payloads": "Three solid state Push Broom Cameras LlSS-1 (72.5 metre resolution), LlSS-2A and LlSS-2B (36.25 metre resolution)", + "stabilization": "Three axis body stabilized (zero momentum) with 4 Reactions Wheels, Magnetic torquers", + "propulsion": "Monopropellant Hydrazine based with sixteen 1 Newton thrusters" + }, + { + "id": 13, + "name": "SROSS-C", + "mission_type": "Experimental", + "launch_date": "1992-05-20", + "launch_site": "SHAR Centre, Sriharikota, India", + "launch_vehicle": "Augmented Satellite Launch Vehicle (ASLV)", + "orbit": "267 x 391 km", + "orbit_type": null, + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 106.1, + "power_watts": 45.0, + "mission_life": "2 months", + "status": "decommissioned", + "payloads": "Gamma Ray Burst (GRB) experiment & Retarding Potential Analyser (RPA) experiment", + "stabilization": "Spin stabilized with a Magnetic Torquer and Magnetic Bias Control", + "propulsion": null + }, + { + "id": 14, + "name": "INSAT-2A", + "mission_type": "Multipurpose Communication, meteorology and Satellite based search and rescue", + "launch_date": "1992-07-10", + "launch_site": "French Guyana", + "launch_vehicle": "Ariane 4", + "orbit": "Geostationary 74oE longitude", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": 0.0, + "mass_kg": 1906.0, + "power_watts": 1000.0, + "mission_life": "7 years", + "status": "decommissioned", + "payloads": "Transponders: 12 C-band (for FSS),6 ext. C-band (for FSS) 2 S-band (for BSS),1Data relay transponder (for met.data), 1 transponder for research and rescue, Very High Resolution radiometer (VHRR) for meteorological observation with 2 km resolution in the visible and 8 km resolution in the IR band", + "stabilization": "Three axis body stabilized with two Momentum Wheels & one Reaction Wheel, Magnetic torquers", + "propulsion": "Integrated bipropellant system (MMH and N2 04) With sixteen 22 N thrusters and 440 LAM." + }, + { + "id": 15, + "name": "INSAT-2B", + "mission_type": "Multipurpose Communication, meteorology and Satellite based search and rescue", + "launch_date": "1993-07-23", + "launch_site": "French Guyana", + "launch_vehicle": "Ariane 4", + "orbit": "Geostationary 93.5o E", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": 0.0, + "mass_kg": 1906.0, + "power_watts": 1000.0, + "mission_life": "7 years", + "status": "decommissioned", + "payloads": "Transponders: 12C-band (for FSS),6 ext. C-band (for FSS) 2S-band (for BSS),1Data relay transponder (for met.data), 1 transponder for research and rescue, Very High Resolution radiometer (VHRR) for meteorological observation with 2 km resolution in the visible and 8 km resolution in the IR band", + "stabilization": "Three axis body stabilized with two Momentum Wheels & one Reaction Wheel, Magnetic torquers", + "propulsion": "Integrated bipropellant system ( MMH and N2 04) With sixteen 22 N thrusters and 440 N LAM." + }, + { + "id": 16, + "name": "IRS-1E", + "mission_type": "Operational Remote Sensing", + "launch_date": "1993-09-20", + "launch_site": "SHAR Centre, Sriharikota, India", + "launch_vehicle": "PSLV-D1", + "orbit": "Not realised", + "orbit_type": "Failed", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 846.0, + "power_watts": 415.0, + "mission_life": null, + "status": "failed", + "payloads": "LlSS-1 MEOSS (Mono-ocula Erlectro Optic Stereo Scanner)", + "stabilization": "Three axis body stabilized ( zero momentum) with 4 Reaction Wheels, Magnetic torquers", + "propulsion": "Monopropellant Hydrazine based RCS with 1 Newton thrusters ( 16 Nos.)" + }, + { + "id": 17, + "name": "SROSS-C2", + "mission_type": "Experimental", + "launch_date": "1994-05-04", + "launch_site": "SHAR Centre,Sriharikota,India", + "launch_vehicle": "Augmented Satellite Launch Vehicle (ASLV)", + "orbit": "430 x 600 km.", + "orbit_type": null, + "altitude_km": null, + "inclination_deg": 45.0, + "mass_kg": 115.0, + "power_watts": 45.0, + "mission_life": "6 months", + "status": "decommissioned", + "payloads": "Gamma Ray Burst (GRB) & Retarding Potential Analyser (RPA)", + "stabilization": null, + "propulsion": "Monopropellant Hydrazine based with six 1 Newton thrusters" + }, + { + "id": 18, + "name": "IRS-P2", + "mission_type": "Operational Remote Sensing", + "launch_date": "1994-10-15", + "launch_site": "SHAR Centre, Sriharikota, India", + "launch_vehicle": "PSLV-D2", + "orbit": null, + "orbit_type": null, + "altitude_km": null, + "inclination_deg": 98.68, + "mass_kg": 804.0, + "power_watts": 510.0, + "mission_life": null, + "status": "decommissioned", + "payloads": "Two solid state Push Broom Cameras operating in four spectral bands in the visible and near-IR range using CCD arrays: LlSS-2A & LlSS-2B (Resolution: 32.74 metre)", + "stabilization": "Three axis body stabilized with 4 Reaction Wheels, Magnetic torquers", + "propulsion": "4 tanks containing Monopropellant Hydrazine based with sixteen 1 N thrusters and one 11 N thruster" + }, + { + "id": 19, + "name": "INSAT-2C", + "mission_type": "Communication", + "launch_date": "1995-12-07", + "launch_site": "French Guyana", + "launch_vehicle": "Ariane4", + "orbit": "Geostationary 93.5 deg E", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": 0.0, + "mass_kg": 2106.0, + "power_watts": 1320.0, + "mission_life": "7 years", + "status": "decommissioned", + "payloads": "Transponders: 16C-band / extended C-band transponders (for FSS), 2 high power C-band transponders (for BSS), 1S-band transponder (for BSS),1C/S-band mobile communication transponder, 3 Ku-band transponders", + "stabilization": "Three axis stabilized with two Momen'tum Wheels & one Reaction Wheel, Magnetic torquers", + "propulsion": "Integrated bipropellant system ( MMH and N2 04) With sixteen 22N thrusters and 440N LAM." + }, + { + "id": 20, + "name": "IRS-1D", + "mission_type": "Operational Remote Sensing", + "launch_date": "1995-12-28", + "launch_site": "Baikanur Cosmodrome Kazakhstan", + "launch_vehicle": "Molniya", + "orbit": "817 km Polar Sun-synchronous", + "orbit_type": "SSO", + "altitude_km": null, + "inclination_deg": 98.69, + "mass_kg": 1250.0, + "power_watts": 809.0, + "mission_life": null, + "status": "decommissioned", + "payloads": "Three solid state Push Broom Cameras: PAN (<6 metre solution )LlSS-3(23.6 metre resolution) and WiFS (189 metre resolution)", + "stabilization": "Three axis body stabilized (zero momentum) with 4 Reaction Wheels, Magnetic torquer", + "propulsion": "Monopropellant Hydrazine based with sixteen 1 N thrusters & one 11N thrusters" + }, + { + "id": 21, + "name": "IRS-1C", + "mission_type": "Operational Remote Sensing", + "launch_date": "1995-12-28", + "launch_site": "Baikanur Cosmodrome Kazakhstan", + "launch_vehicle": "Molniya", + "orbit": "817 km Polar Sun-synchronous", + "orbit_type": "SSO", + "altitude_km": null, + "inclination_deg": 98.69, + "mass_kg": 1250.0, + "power_watts": 809.0, + "mission_life": null, + "status": "decommissioned", + "payloads": "Three solid state Push Broom Cameras: PAN (<6 metre solution )LlSS-3(23.6 metre resolution) and WiFS (189 metre resolution)", + "stabilization": "Three axis body stabilized (zero momentum) with 4 Reaction Wheels, Magnetic torquer", + "propulsion": "Monopropellant Hydrazine based with sixteen 1 N thrusters & one 11N thrusters" + }, + { + "id": 22, + "name": "IRS-P3", + "mission_type": "Remote sensing of earth's natural resources. Study of X-ray Astronomy. Periodic calibration of PSLV tracking radar located at tracking stations.", + "launch_date": "1996-03-21", + "launch_site": "SHAR Centre, Sriharikota, India", + "launch_vehicle": "PSLV-D3", + "orbit": "817 km. Circular polar sun-synchronous with equatorial crossing at 10.30 am (descending node)", + "orbit_type": "SSO", + "altitude_km": null, + "inclination_deg": 98.68, + "mass_kg": 920.0, + "power_watts": 817.0, + "mission_life": null, + "status": "decommissioned", + "payloads": "WideField Sensor (WiFS), Modular Opto - electronic Scanner (MOS), Indian X-ray Astronomy Experiment (IXAE), C-band transponder(CBT)", + "stabilization": "Three axis body stabilized", + "propulsion": "Combinations of bladder type and surface tension type mass expulsion monopropellant hydrazine system" + }, + { + "id": 23, + "name": "INSAT-2D", + "mission_type": "Communication", + "launch_date": "1997-06-04", + "launch_site": "French Guyana", + "launch_vehicle": "Arianev 4", + "orbit": "Geostationary 93,.5deg.E", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": 0.0, + "mass_kg": 2079.0, + "power_watts": 1650.0, + "mission_life": null, + "status": "decommissioned", + "payloads": "Transponders: 16C-band / extended C-band transponders (forFSS), 2 high power C-band transponders (for BSS), 1S-band transponder (for BSS),1C/S-band mobile communication transponder, 3 Ku-band transponders", + "stabilization": "Three axis stabilized with two Momentum Wheels & one Reaction Wheel, Magnetic torquers", + "propulsion": "Integrated bipropellan stystem ( MMH and N2 04) With sixteen 22N thrusters and 440N LAM." + }, + { + "id": 24, + "name": "INSAT-2E", + "mission_type": "Communication and Meteorology", + "launch_date": "1999-04-03", + "launch_site": "French Guyana", + "launch_vehicle": "Ariane – 42P", + "orbit": "Geosynchronous (83 deg east longitude)", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 2550.0, + "power_watts": null, + "mission_life": null, + "status": "decommissioned", + "payloads": null, + "stabilization": null, + "propulsion": null + }, + { + "id": 25, + "name": "Oceansat(IRS-P4)", + "mission_type": null, + "launch_date": "1999-05-26", + "launch_site": "SHAR, Sriharikota", + "launch_vehicle": "PSLV - C2", + "orbit": "Polar Sun Synchronous", + "orbit_type": "SSO", + "altitude_km": 720.0, + "inclination_deg": 98.28, + "mass_kg": 1050.0, + "power_watts": 750.0, + "mission_life": null, + "status": "decommissioned", + "payloads": null, + "stabilization": "3-axis body-stabilised using Reaction Wheels, Magnetic Torquers and Hydrazine Thrusters", + "propulsion": null + }, + { + "id": 26, + "name": "INSAT-3B", + "mission_type": null, + "launch_date": "2000-03-22", + "launch_site": "French Guyana", + "launch_vehicle": "Ariane -5", + "orbit": "Geostationary (83 deg East longitude)", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": 7.0, + "mass_kg": 2070.0, + "power_watts": 1712.0, + "mission_life": "Very long", + "status": "unknown", + "payloads": "12 extended C – band Transponders Five Ku band Transponders Mobile Satellite Services (MSS)", + "stabilization": "3 – axis body stabilised biased momentum control system using earth sensors, sun sensors, inertial reference unit, momentum / reaction wheels, magnetic torquers and unified bi-propellant thrusters.", + "propulsion": "Liquid Apogee Motor with fuel and oxidizer stored in separate titanium tanks and pressurant in Kevlar wound titanium tank." + }, + { + "id": 27, + "name": "GSAT-1", + "mission_type": "Communication", + "launch_date": "2001-04-18", + "launch_site": "SHAR, Sriharikota", + "launch_vehicle": "GSLV – D1", + "orbit": "Sun Synchronous Geo stationary orbit", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 1530.0, + "power_watts": null, + "mission_life": null, + "status": "unknown", + "payloads": null, + "stabilization": null, + "propulsion": null + }, + { + "id": 28, + "name": "The Technology Experiment Satellite (TES)", + "mission_type": null, + "launch_date": "2001-10-22", + "launch_site": "SHAR Centre Sriharikota India", + "launch_vehicle": "PSLV- C3", + "orbit": "572 km Sun Synchronous", + "orbit_type": "SSO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": null, + "power_watts": null, + "mission_life": null, + "status": "unknown", + "payloads": "PAN", + "stabilization": null, + "propulsion": null + }, + { + "id": 29, + "name": "INSAT-3C", + "mission_type": "Communication, broadcasting and Meteorology", + "launch_date": "2002-01-24", + "launch_site": "French Guyana", + "launch_vehicle": "Ariane5-V147", + "orbit": "Geostationary (74o longitude)", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 2650.0, + "power_watts": 2765.0, + "mission_life": "Very long", + "status": "unknown", + "payloads": "24 C band transponders 6 Extended C - band Transponders 2 S - band Transponders", + "stabilization": null, + "propulsion": "Liquid Apogee Motor with fuel and oxidizer stored in separate titanium tanks and pressurant in Kevlar wound titanium tank." + }, + { + "id": 30, + "name": "KALPANA-1", + "mission_type": null, + "launch_date": "2002-09-12", + "launch_site": "SHAR, Sriharikota", + "launch_vehicle": "PSLV – C4", + "orbit": "Geostationary (74 deg East longitude)", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 1060.0, + "power_watts": 550.0, + "mission_life": "7 years", + "status": "decommissioned", + "payloads": "Very High Resolution Radiometer (VHRR) Data Relay Transponder (DRT)", + "stabilization": null, + "propulsion": null + }, + { + "id": 31, + "name": "INSAT-3A", + "mission_type": "Telecommunication, broadcasting and Meteorology", + "launch_date": "2003-04-10", + "launch_site": "French Guyana", + "launch_vehicle": "Ariane5-V160", + "orbit": "Geostationary (93.5o E longitude)", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 2950.0, + "power_watts": 3100.0, + "mission_life": "12 years", + "status": "decommissioned", + "payloads": "Communication payload - 12 C – band transponders, - 6 upper extended C band transponders - 6 Ku band transponders - 1 Satellite Aided Search & Rescue transponders Meteorological payload - Very High Resolution Radiometer (VHRR) with 2 km resolution in visible band and 8 km resolution in infrared and water vapour band - Charged Coupled Device (CCD) camera operating in visible, near infrared and shortwave infrared band with 1 km resolution. - Data Relay Transponders (DRT)", + "stabilization": "3 – axis body stabilised in orbit using momentum and reaction wheels, solar flaps, magnetic torquers and eight 10 N and eight 22 N reaction control thrusters", + "propulsion": "440 N Liquid Apogee Motor with MON-3 (Mixed Oxides of Nitrogen) and MMH (Mono Methyl Hydrazine) for orbit raising" + }, + { + "id": 32, + "name": "GSAT-2", + "mission_type": "Communication", + "launch_date": "2003-05-08", + "launch_site": "SHAR, Sriharikota, India", + "launch_vehicle": "GSLV–D2", + "orbit": "Geostationary orbit (48oE longitude)", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 1800.0, + "power_watts": null, + "mission_life": null, + "status": "unknown", + "payloads": null, + "stabilization": null, + "propulsion": null + }, + { + "id": 33, + "name": "INSAT-3E", + "mission_type": "Communication", + "launch_date": "2003-09-28", + "launch_site": "French Guyana", + "launch_vehicle": "Ariane5-V162", + "orbit": "Geostationary Orbit", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 2775.0, + "power_watts": null, + "mission_life": null, + "status": "unknown", + "payloads": null, + "stabilization": null, + "propulsion": null + }, + { + "id": 34, + "name": "IRS-P6 / RESOURCESAT-1", + "mission_type": null, + "launch_date": "2003-10-17", + "launch_site": "SHAR, Sriharikota", + "launch_vehicle": "PSLV-C5", + "orbit": "Polar Sun Synchronous", + "orbit_type": "SSO", + "altitude_km": 817.0, + "inclination_deg": 98.7, + "mass_kg": 1360.0, + "power_watts": 1250.0, + "mission_life": "5 years", + "status": "decommissioned", + "payloads": "LISS-4, LISS-3, AWiFS-A, AWiFS-B", + "stabilization": "3-axis body stabilised using Reaction Wheels, Magnetic Torquers and Hydrazine Thrusters", + "propulsion": null + }, + { + "id": 35, + "name": "EDUSAT", + "mission_type": "Education", + "launch_date": "2004-09-20", + "launch_site": "SHAR, Sriharikota, India", + "launch_vehicle": "GSLV-F01", + "orbit": "Geostationary (74 o E longitude)", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 1950.5, + "power_watts": 2040.0, + "mission_life": "7 years", + "status": "decommissioned", + "payloads": "Six upper extended C - band transponders Five lower Ku band transponders with regional beam coverage One lower Ku band National beam transponder with Indian main land coverage Ku beacon 12 C band high power transponders with extended coverage, covering southeast and northwest region apart from Indian main land using 63 W LTWTAs", + "stabilization": "3 axis body stabilised in orbit using sensors, momentum and reaction wheels, magnetic torquers and eight 10 N & 22N reaction control thrusters.", + "propulsion": "440 N Liquid Apogee Motor with MON - 3 and MMH for orbit raising" + }, + { + "id": 36, + "name": "CARTOSAT-1", + "mission_type": null, + "launch_date": "2005-05-05", + "launch_site": "SHAR Centre Sriharikota India", + "launch_vehicle": "PSLV- C6", + "orbit": "618 km Polar Sun Synchronous", + "orbit_type": "SSO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 1560.0, + "power_watts": 1100.0, + "mission_life": "5 years", + "status": "decommissioned", + "payloads": "PAN FORE, PAN - AFT", + "stabilization": "3-axis body stabillised using reaction wheels, Magnetic Torquers and Hydrazine Thrusters", + "propulsion": null + }, + { + "id": 37, + "name": "HAMSAT", + "mission_type": null, + "launch_date": "2005-05-05", + "launch_site": "SHAR Centre, Sriharikota, India", + "launch_vehicle": "PSLV-C6", + "orbit": "Geo-synchronous, 633.355 km (average)", + "orbit_type": null, + "altitude_km": null, + "inclination_deg": null, + "mass_kg": null, + "power_watts": null, + "mission_life": null, + "status": "unknown", + "payloads": "2 Transponders", + "stabilization": null, + "propulsion": null + }, + { + "id": 38, + "name": "INSAT-4A", + "mission_type": null, + "launch_date": "2005-12-22", + "launch_site": null, + "launch_vehicle": "ARIANE5-V169", + "orbit": "Geostationary ( 83o E)", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 3081.0, + "power_watts": 5922.0, + "mission_life": "12 years", + "status": "decommissioned", + "payloads": null, + "stabilization": null, + "propulsion": null + }, + { + "id": 39, + "name": "CARTOSAT-2", + "mission_type": "Remote Sensing", + "launch_date": "2007-01-10", + "launch_site": "SHAR Centre Sriharikota India", + "launch_vehicle": "PSLV- C7", + "orbit": "Polar Sun Synchronous", + "orbit_type": "SSO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 650.0, + "power_watts": 900.0, + "mission_life": "5 years", + "status": "decommissioned", + "payloads": "Panchromatic Camera", + "stabilization": "3 - axis body stabilised using high torque reaction wheels, magnetic torquers and thrusters", + "propulsion": null + }, + { + "id": 40, + "name": "INSAT-4B", + "mission_type": "Communication", + "launch_date": "2007-03-12", + "launch_site": "French Guiana", + "launch_vehicle": "Ariane5", + "orbit": "Geostationary (93.5 o E Longitude)", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 3025.0, + "power_watts": 5859.0, + "mission_life": "12 years", + "status": "decommissioned", + "payloads": "12 Ku band high power transponders covering Indian main land using 140W radiatively cooled TWTAs.", + "stabilization": "It uses 3 earth sensors, 2 digital sun sensors, 8 coarse analog sun sensors, 3 solar panel sun sensors and one sensor processing electronics. The wheels and wheel drive electronics were imported with indigenous wheel interface module to interface the wheel drive electronics and AOCE.", + "propulsion": "The propulsion system is employing 16 thrusters, 4 each located on east, west and AY sides and 2 each on north and south sides. There is one 440 N liquid apogee motor (using Mono Methyl Hydrazine (MMH) as fuel and oxides of Nitrogen (MON3 as oxidizer) and three pressurant tanks mounted on the LAM deck." + }, + { + "id": 41, + "name": "INSAT-4CR", + "mission_type": "Communication", + "launch_date": "2007-09-02", + "launch_site": "SHAR, Sriharikota, India", + "launch_vehicle": "GSLV-F04", + "orbit": "Geosynchronous (74° E)", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 2130.0, + "power_watts": 3000.0, + "mission_life": "12 years", + "status": "decommissioned", + "payloads": null, + "stabilization": null, + "propulsion": null + }, + { + "id": 42, + "name": "CARTOSAT-2A", + "mission_type": "Remote Sensing", + "launch_date": "2008-04-28", + "launch_site": "SHAR Centre Sriharikota India", + "launch_vehicle": "PSLV- C9", + "orbit": "635 km, Polar Sun Synchronous", + "orbit_type": "SSO", + "altitude_km": null, + "inclination_deg": 97.94, + "mass_kg": 690.0, + "power_watts": 900.0, + "mission_life": "5 years", + "status": "decommissioned", + "payloads": "Panchromatic Camera", + "stabilization": "3 – axis body stabilised using high torque reaction wheels, magnetic torquers and hydrogen thrusters", + "propulsion": null + }, + { + "id": 43, + "name": "Chandrayaan-1", + "mission_type": "Remote Sensing, Planetary Science", + "launch_date": "2008-10-22", + "launch_site": "SDSC, SHAR, Sriharikota", + "launch_vehicle": "PSLV - C11", + "orbit": "100 km x 100 km : Lunar Orbit", + "orbit_type": "Lunar", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 1380.0, + "power_watts": 700.0, + "mission_life": "2 years", + "status": "decommissioned", + "payloads": null, + "stabilization": "3 - axis stabilised using reaction wheel and attitude control thrusters, sun sensors, star sensors, fibre optic gyros and accelerometers for attitude determination.", + "propulsion": null + }, + { + "id": 44, + "name": "Oceansat-2", + "mission_type": null, + "launch_date": "2009-09-23", + "launch_site": "SHAR, Sriharikota", + "launch_vehicle": "PSLV - C14", + "orbit": "Polar Sun Synchronous", + "orbit_type": "SSO", + "altitude_km": 720.0, + "inclination_deg": 98.28, + "mass_kg": 960.0, + "power_watts": 1360.0, + "mission_life": "5 years", + "status": "decommissioned", + "payloads": "OCM, SCAT and ROSA", + "stabilization": null, + "propulsion": null + }, + { + "id": 45, + "name": "CARTOSAT-2B", + "mission_type": "Remote Sensing", + "launch_date": "2010-07-12", + "launch_site": "SHAR Centre Sriharikota India", + "launch_vehicle": "PSLV- C15", + "orbit": "630 kms, Polar Sun Synchronous", + "orbit_type": "SSO", + "altitude_km": null, + "inclination_deg": 97.71, + "mass_kg": 694.0, + "power_watts": 930.0, + "mission_life": null, + "status": "unknown", + "payloads": "Panchromatic Camera", + "stabilization": "3 – axis body stabilised based on inputs from star sensors and gyros using Reaction wheels, Magnetic Torquers and Hydrazine Thrusters", + "propulsion": null + }, + { + "id": 46, + "name": "RESOURCESAT-2", + "mission_type": "Remote Sensing", + "launch_date": "2011-04-20", + "launch_site": "SHAR Centre Sriharikota India", + "launch_vehicle": "PSLV- C16", + "orbit": "Circular Polar Sun Synchronous", + "orbit_type": "SSO", + "altitude_km": 822.0, + "inclination_deg": 98.731, + "mass_kg": 1206.0, + "power_watts": 1250.0, + "mission_life": "5 years", + "status": "decommissioned", + "payloads": null, + "stabilization": "3-axis body stabilised using Reaction Wheels, Magnetic Torquers and Hydrazine Thrusters", + "propulsion": null + }, + { + "id": 47, + "name": "YOUTHSAT", + "mission_type": null, + "launch_date": "2011-04-20", + "launch_site": "SHAR Centre Sriharikota India", + "launch_vehicle": "PSLV- C16", + "orbit": "Circular Polar Sun Synchronous", + "orbit_type": "SSO", + "altitude_km": 822.0, + "inclination_deg": 98.731, + "mass_kg": 92.0, + "power_watts": 230.0, + "mission_life": "2 years", + "status": "decommissioned", + "payloads": null, + "stabilization": "3-axis body stabilised using Sun and Star Sensors, Miniature Magnetometer, Miniature Gyros, Micro Reaction Wheels and Magnetic Torquers", + "propulsion": null + }, + { + "id": 48, + "name": "GSAT-8", + "mission_type": "Communication", + "launch_date": "2011-05-21", + "launch_site": "Kourou, French Guiana", + "launch_vehicle": "Ariane-5 VA-202", + "orbit": "Geosynchronous (55° E)", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 3093.0, + "power_watts": 6242.0, + "mission_life": ">12 years", + "status": "decommissioned", + "payloads": null, + "stabilization": "3-axis body stabilised in orbit using Earth Sensors, Sun Sensors, Momentum and Reaction Wheels, Magnetic Torquers and eight 10 Newton and eight 22 Newton bipropellant thrusters", + "propulsion": "440 Newton Liquid Apogee Motors (LAM) with mono Methyl Hydrazine (MMH) as fuel and Mixed oxides of Nitrogen (MON-3) as oxidizer for orbit raising." + }, + { + "id": 49, + "name": "GSAT-12", + "mission_type": "Communication", + "launch_date": "2011-07-15", + "launch_site": "SHAR, Sriharikota, India", + "launch_vehicle": "PSLV-C17", + "orbit": "Geosynchronous (83° longitude)", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 1410.0, + "power_watts": 1430.0, + "mission_life": "~8 years", + "status": "decommissioned", + "payloads": null, + "stabilization": "3-axis body stabilised in orbit using Earth Sensors, Sun Sensors, Momentum and Reaction Wheels, Magnetic Torquers and eight 10 Newton and eight 22 Newton bipropellant thrusters", + "propulsion": "440 Newton Liquid Apogee Motors (LAM) with Mono Methyl Hydrazine (MMH) as fuel and Mixed oxides of Nitrogen (MON-3) as oxidizer for orbit raising." + }, + { + "id": 50, + "name": "Megha-Tropiques", + "mission_type": null, + "launch_date": "2011-10-12", + "launch_site": "SDSC SHAR Centre, Sriharikota, India", + "launch_vehicle": "PSLV- C18", + "orbit": "867 km with an inclination of 20 deg to the equator", + "orbit_type": null, + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 1000.0, + "power_watts": 1325.0, + "mission_life": null, + "status": "unknown", + "payloads": null, + "stabilization": "3-axis stabilised with 4 Reaction Wheels, Gyros and Star sensors, Hydrazine based RCS", + "propulsion": null + }, + { + "id": 51, + "name": "RISAT-1", + "mission_type": null, + "launch_date": "2012-04-26", + "launch_site": "SDSC SHAR Centre, Sriharikota, India", + "launch_vehicle": "PSLV- C19", + "orbit": "Circular Polar Sun Synchronous", + "orbit_type": "SSO", + "altitude_km": 536.0, + "inclination_deg": 97.552, + "mass_kg": 1858.0, + "power_watts": 2200.0, + "mission_life": "5 years", + "status": "decommissioned", + "payloads": null, + "stabilization": "3-axis body stabilised using Reaction Wheels, Magnetic Torquers and Hydrazine Thrusters", + "propulsion": null + }, + { + "id": 52, + "name": "GSAT-10", + "mission_type": "Communication", + "launch_date": "2012-09-29", + "launch_site": "Kourou, French Guiana", + "launch_vehicle": "Ariane-5 VA-209", + "orbit": "Geostationary (83° East longitude), co-located with INSAT-4A and GSAT-12", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 3400.0, + "power_watts": 6474.0, + "mission_life": "15 years", + "status": "active", + "payloads": null, + "stabilization": "3-axis body stabilised in orbit using Earth Sensors, Sun Sensors, Momentum and Reaction Wheels, Magnetic Torquers and eight 10 Newton and eight 22 Newton bipropellant thrusters", + "propulsion": "440 Newton Liquid Apogee Motors (LAM) with Mono Methyl Hydrazine (MMH) as fuel and Mixed oxides of Nitrogen (MON-3) as oxidizer for orbit raising." + }, + { + "id": 53, + "name": "SARAL", + "mission_type": null, + "launch_date": "2013-02-25", + "launch_site": "SDSC SHAR Centre, Sriharikota, India", + "launch_vehicle": "PSLV - C20", + "orbit": "781 km polar Sun synchronous", + "orbit_type": "SSO", + "altitude_km": null, + "inclination_deg": 98.538, + "mass_kg": 407.0, + "power_watts": 906.0, + "mission_life": "5 years", + "status": "decommissioned", + "payloads": null, + "stabilization": "3-axis stabilisation with reaction wheels, Hydrazine Control System based thrusters", + "propulsion": null + }, + { + "id": 54, + "name": "IRNSS-1A", + "mission_type": null, + "launch_date": "2013-07-01", + "launch_site": "SDSC SHAR Centre, Sriharikota, India", + "launch_vehicle": "PSLV - C22", + "orbit": "Geosynchronous, at 55 deg East longitude with 29 deg inclination", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 1425.0, + "power_watts": 1660.0, + "mission_life": "10 years", + "status": "decommissioned", + "payloads": null, + "stabilization": "Zero momentum system, orientation input from Sun & star Sensors and Gyroscopes; Reaction Wheels, Magnetic Torquers and 22 Newton thrusters as actuators", + "propulsion": "440 Newton Liquid Apogee Motor, twelve 22 Newton Thrusters" + }, + { + "id": 55, + "name": "INSAT-3D", + "mission_type": "Meteorological and Search & Rescue Services", + "launch_date": "2013-07-26", + "launch_site": "Kourou, French Guiana", + "launch_vehicle": "Ariane-5 VA-214", + "orbit": "Geostationary, 82 deg E Longitude", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 2060.0, + "power_watts": 1164.0, + "mission_life": "7 years", + "status": "decommissioned", + "payloads": null, + "stabilization": "3-asix body stabilized in orbit using Sun Sensors, Star Sensors, gyroscopes, Momentum and Reaction Wheels, Magnetic Torquers and thrusters", + "propulsion": "440 Newton Liquid Apogee Motor (LAM) and twelve 22 Newton thrusters with Mono Methyl Hydrazine (MMH) as fuel and mixed Oxides of Nitrogen (MON-3) as oxidizer" + }, + { + "id": 56, + "name": "GSAT-7", + "mission_type": "Communication", + "launch_date": "2013-08-30", + "launch_site": "Kourou, French Guiana", + "launch_vehicle": "Ariane-5 VA-215", + "orbit": "74oE Geo Stationary", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 2650.0, + "power_watts": 3000.0, + "mission_life": "> 7 years", + "status": "decommissioned", + "payloads": null, + "stabilization": "3-axis stabilized", + "propulsion": null + }, + { + "id": 57, + "name": "GSAT-14", + "mission_type": null, + "launch_date": "2014-01-05", + "launch_site": "SDSC, SHAR", + "launch_vehicle": "GSLV-D5", + "orbit": "74 deg East longitude in geostationary orbit", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 1982.0, + "power_watts": 2600.0, + "mission_life": "12 years", + "status": "active", + "payloads": null, + "stabilization": "Momentum biased 3-axis stabilized mode", + "propulsion": "Bi propellant-Mono Methyl Hydrazine and Mixed Oxides of Nitrogen (MON-3)" + }, + { + "id": 58, + "name": "IRNSS-1B", + "mission_type": null, + "launch_date": "2014-04-04", + "launch_site": "SDSC SHAR Centre, Sriharikota, India", + "launch_vehicle": "PSLV - C24", + "orbit": "Geosynchronous, at 55 deg East longitude with 29 deg inclination", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 1432.0, + "power_watts": 1660.0, + "mission_life": "10 years", + "status": "decommissioned", + "payloads": null, + "stabilization": "Zero momentum system, orientation input from Sun & star Sensors and Gyroscopes; Reaction Wheels, Magnetic Torquers and 22 Newton thrusters as actuators", + "propulsion": "440 Newton Liquid Apogee Motor, twelve 22 Newton Thrusters" + }, + { + "id": 59, + "name": "GSAT-15", + "mission_type": "Communication and Satellite Navigation", + "launch_date": "2015-11-11", + "launch_site": "Kourou, French Guiana", + "launch_vehicle": "Ariane-5 VA-227", + "orbit": "Geostationary (93.5° East longitude)Co-located with INSAT-3A and INSAT-4B", + "orbit_type": "GEO", + "altitude_km": null, + "inclination_deg": null, + "mass_kg": 3164.0, + "power_watts": 6200.0, + "mission_life": "12 years", + "status": "active", + "payloads": null, + "stabilization": null, + "propulsion": "Bi- propellant System" + }, + { + "id": 60, + "name": "RISAT-2BR1", + "mission_type": null, + "launch_date": null, + "launch_site": null, + "launch_vehicle": null, + "orbit": null, + "orbit_type": "LEO", + "altitude_km": 576.0, + "inclination_deg": 37.0, + "mass_kg": 628.0, + "power_watts": null, + "mission_life": "5 years", + "status": "unknown", + "payloads": "X-Band Radar", + "stabilization": null, + "propulsion": null + }, + { + "id": 61, + "name": "Cartosat-3", + "mission_type": null, + "launch_date": null, + "launch_site": null, + "launch_vehicle": null, + "orbit": null, + "orbit_type": "LEO", + "altitude_km": 509.0, + "inclination_deg": 97.5, + "mass_kg": 1625.0, + "power_watts": 2000.0, + "mission_life": "5 years", + "status": "unknown", + "payloads": null, + "stabilization": null, + "propulsion": null + }, + { + "id": 62, + "name": "GSAT-6", + "mission_type": null, + "launch_date": null, + "launch_site": null, + "launch_vehicle": null, + "orbit": null, + "orbit_type": null, + "altitude_km": null, + "inclination_deg": null, + "mass_kg": null, + "power_watts": 3100.0, + "mission_life": "9 years", + "status": "unknown", + "payloads": "i. S-band payload with five spot beams covering India for user links ii. C-band payload with one beam covering India for hub links S-band payload uses 6 m unfurlable antenna and C-band uses 0.8 m antenna.", + "stabilization": "Momentum biased 3-axis stabilised", + "propulsion": null + }, + { + "id": 63, + "name": "RISAT-2", + "mission_type": null, + "launch_date": null, + "launch_site": null, + "launch_vehicle": null, + "orbit": null, + "orbit_type": "LEO", + "altitude_km": 550.0, + "inclination_deg": 41.0, + "mass_kg": 300.0, + "power_watts": null, + "mission_life": null, + "status": "unknown", + "payloads": null, + "stabilization": null, + "propulsion": null + }, + { + "id": 64, + "name": "IMS-1", + "mission_type": null, + "launch_date": null, + "launch_site": null, + "launch_vehicle": null, + "orbit": "Polar Sun Synchronous", + "orbit_type": "SSO", + "altitude_km": 635.0, + "inclination_deg": null, + "mass_kg": 83.0, + "power_watts": 220.0, + "mission_life": "2 years", + "status": "unknown", + "payloads": null, + "stabilization": "Star Sensor, Miniature Sun Sensors, Magnetometers Gyros, Miniature Micro Reaction Wheels, Magnetic Torquers, single 1 N Hydrazine Thruster", + "propulsion": null + } + ] +} \ No newline at end of file diff --git a/data/spacecrafts.json b/data/spacecrafts.json index 2ae8ae1..298ac0c 100644 --- a/data/spacecrafts.json +++ b/data/spacecrafts.json @@ -1,456 +1,1134 @@ { - "spacecrafts": [ - { - "id": 1, - "name": "Aryabhata" - }, - { - "id": 2, - "name": "Bhaskara-I" - }, - { - "id": 3, - "name": "Rohini Technology Payload (RTP)" - }, - { - "id": 4, - "name": "Rohini Satellite RS-1" - }, - { - "id": 5, - "name": "Rohini Satellite RS-D1" - }, - { - "id": 6, - "name": "APPLE" - }, - { - "id": 7, - "name": "Bhaskara-II" - }, - { - "id": 8, - "name": "INSAT-1A" - }, - { - "id": 9, - "name": "Rohini Satellite RS-D2" - }, - { - "id": 10, - "name": "INSAT-1B" - }, - { - "id": 11, - "name": "SROSS-1" - }, - { - "id": 12, - "name": "IRS-1A" - }, - { - "id": 13, - "name": "SROSS-2" - }, - { - "id": 14, - "name": "INSAT-1C" - }, - { - "id": 15, - "name": "INSAT-1D" - }, - { - "id": 16, - "name": "IRS-1B" - }, - { - "id": 17, - "name": "SROSS-C" - }, - { - "id": 18, - "name": "INSAT-2A" - }, - { - "id": 19, - "name": "INSAT-2B" - }, - { - "id": 20, - "name": "IRS-1E" - }, - { - "id": 21, - "name": "SROSS-C2" - }, - { - "id": 22, - "name": "IRS-P2" - }, - { - "id": 23, - "name": "INSAT-2C" - }, - { - "id": 24, - "name": "IRS-1C" - }, - { - "id": 25, - "name": "IRS-P3" - }, - { - "id": 26, - "name": "INSAT-2D" - }, - { - "id": 27, - "name": "IRS-1D" - }, - { - "id": 28, - "name": "INSAT-2E" - }, - { - "id": 29, - "name": "Oceansat(IRS-P4)" - }, - { - "id": 30, - "name": "INSAT-3B" - }, - { - "id": 31, - "name": "GSAT-1" - }, - { - "id": 32, - "name": "The Technology Experiment Satellite (TES)" - }, - { - "id": 33, - "name": "INSAT-3C" - }, - { - "id": 34, - "name": "KALPANA-1" - }, - { - "id": 35, - "name": "INSAT-3A" - }, - { - "id": 36, - "name": "GSAT-2" - }, - { - "id": 37, - "name": "INSAT-3E" - }, - { - "id": 38, - "name": "IRS-P6 / RESOURCESAT-1" - }, - { - "id": 39, - "name": "EDUSAT" - }, - { - "id": 40, - "name": "HAMSAT" - }, - { - "id": 41, - "name": "CARTOSAT-1" - }, - { - "id": 42, - "name": "INSAT-4A" - }, - { - "id": 43, - "name": "INSAT-4C" - }, - { - "id": 44, - "name": "SRE-1" - }, - { - "id": 45, - "name": "CARTOSAT-2" - }, - { - "id": 46, - "name": "INSAT-4B" - }, - { - "id": 47, - "name": "INSAT-4CR" - }, - { - "id": 48, - "name": "CARTOSAT – 2A" - }, - { - "id": 49, - "name": "IMS-1" - }, - { - "id": 50, - "name": "Chandrayaan-1" - }, - { - "id": 51, - "name": "RISAT-2" - }, - { - "id": 52, - "name": "Oceansat-2" - }, - { - "id": 53, - "name": "GSAT-4" - }, - { - "id": 54, - "name": "CARTOSAT-2B" - }, - { - "id": 55, - "name": "GSAT-5P" - }, - { - "id": 56, - "name": "YOUTHSAT" - }, - { - "id": 57, - "name": "RESOURCESAT-2" - }, - { - "id": 58, - "name": "GSAT-8" - }, - { - "id": 59, - "name": "GSAT-12" - }, - { - "id": 60, - "name": "Megha-Tropiques" - }, - { - "id": 61, - "name": "RISAT-1" - }, - { - "id": 62, - "name": "GSAT-10" - }, - { - "id": 63, - "name": "SARAL" - }, - { - "id": 64, - "name": "IRNSS-1A" - }, - { - "id": 65, - "name": "INSAT-3D" - }, - { - "id": 66, - "name": "GSAT-7" - }, - { - "id": 67, - "name": "Mars Orbiter Mission Spacecraft" - }, - { - "id": 68, - "name": "GSAT-14" - }, - { - "id": 69, - "name": "IRNSS-1B" - }, - { - "id": 70, - "name": "IRNSS-1C" - }, - { - "id": 71, - "name": "GSAT-16" - }, - { - "id": 72, - "name": "Crew module Atmospheric Re-entry Experiment (CARE)" - }, - { - "id": 73, - "name": "IRNSS-1D" - }, - { - "id": 74, - "name": "GSAT-6" - }, - { - "id": 75, - "name": "Astrosat" - }, - { - "id": 76, - "name": "GSAT-15" - }, - { - "id": 77, - "name": "IRNSS-1E" - }, - { - "id": 78, - "name": "IRNSS-1F" - }, - { - "id": 79, - "name": "IRNSS-1G" - }, - { - "id": 80, - "name": "CARTOSAT-2 Series Satellite" - }, - { - "id": 81, - "name": "INSAT-3DR" - }, - { - "id": 82, - "name": "SCATSAT-1" - }, - { - "id": 83, - "name": "GSAT-18" - }, - { - "id": 84, - "name": "RESOURCESAT-2A" - }, - { - "id": 85, - "name": "INS-1B" - }, - { - "id": 86, - "name": "INS-1A" - }, - { - "id": 87, - "name": "Cartosat -2 Series Satellite" - }, - { - "id": 88, - "name": "GSAT-9" - }, - { - "id": 89, - "name": "GSAT-19" - }, - { - "id": 90, - "name": "Cartosat-2 Series Satellite" - }, - { - "id": 91, - "name": "GSAT-17" - }, - { - "id": 92, - "name": "IRNSS-1H" - }, - { - "id": 93, - "name": "INS-1C" - }, - { - "id": 94, - "name": "Cartosat-2 Series Satellite" - }, - { - "id": 95, - "name": "Microsat" - }, - { - "id": 96, - "name": "GSAT-6A" - }, - { - "id": 97, - "name": "IRNSS-1I" - }, - { - "id": 98, - "name": "GSAT-29" - }, - { - "id": 99, - "name": "HysIS" - }, - { - "id": 100, - "name": "GSAT-11 Mission" - }, - { - "id": 101, - "name": "GSAT-7A" - }, - { - "id": 102, - "name": "Microsat-R" - }, - { - "id": 103, - "name": "GSAT-31" - }, - { - "id": 104, - "name": "EMISAT" - }, - { - "id": 105, - "name": "RISAT-2B" - }, - { - "id": 106, - "name": "Chandrayaan2" - }, - { - "id": 107, - "name": "Cartosat-3" - }, - { - "id": 108, - "name": "RISAT-2BR1" - }, - { - "id": 109, - "name": "GSAT-30" - }, - { - "id": 110, - "name": "EOS-01" - }, - { - "id": 111, - "name": "CMS-01" - }, - { - "id": 112, - "name": "EOS-03" - }, - { - "id": 113, - "name": "Chandrayaan3" - } - ] -} + "spacecrafts": [ + { + "id": 1, + "name": "Aryabhata", + "launch_date": "1975-04-19", + "launch_vehicle": "C-1 Intercosmos", + "mission_type": "Scientific/ Experimental", + "orbit_type": null, + "mass_kg": 360.0, + "status": "decommissioned" + }, + { + "id": 2, + "name": "Bhaskara-I", + "launch_date": "1979-06-07", + "launch_vehicle": "C-1Intercosmos", + "mission_type": "Experimental Remote Sensing", + "orbit_type": null, + "mass_kg": 442.0, + "status": "decommissioned" + }, + { + "id": 3, + "name": "Rohini Technology Payload (RTP)", + "launch_date": "1979-08-10", + "launch_vehicle": "SLV-3", + "mission_type": "Experimental", + "orbit_type": "Failed", + "mass_kg": 35.0, + "status": "failed" + }, + { + "id": 4, + "name": "Rohini Satellite RS-1", + "launch_date": "1980-07-18", + "launch_vehicle": "SLV-3", + "mission_type": "Experimental", + "orbit_type": null, + "mass_kg": 35.0, + "status": "decommissioned" + }, + { + "id": 5, + "name": "Rohini Satellite RS-D1", + "launch_date": "1981-05-31", + "launch_vehicle": "SLV-3", + "mission_type": "Experimental", + "orbit_type": null, + "mass_kg": 38.0, + "status": "decommissioned" + }, + { + "id": 6, + "name": "APPLE", + "launch_date": "1981-06-19", + "launch_vehicle": "Ariane -1(V-3)", + "mission_type": "Experimental geostationary communication", + "orbit_type": "GEO", + "mass_kg": 670.0, + "status": "decommissioned" + }, + { + "id": 7, + "name": "Bhaskara-II", + "launch_date": "1981-11-20", + "launch_vehicle": "C-1 Intercosmos", + "mission_type": "Experimental Remote Sensing", + "orbit_type": null, + "mass_kg": 444.0, + "status": "decommissioned" + }, + { + "id": 8, + "name": "INSAT-1A", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 9, + "name": "Rohini Satellite RS-D2", + "launch_date": "1983-04-17", + "launch_vehicle": "SLV-3", + "mission_type": "Experimental", + "orbit_type": null, + "mass_kg": 41.5, + "status": "decommissioned" + }, + { + "id": 10, + "name": "INSAT-1B", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 11, + "name": "SROSS-1", + "launch_date": "1987-03-24", + "launch_vehicle": "Augmented Satellite Launch Vehicle (ASLV)", + "mission_type": "Experimental", + "orbit_type": null, + "mass_kg": 150.0, + "status": "decommissioned" + }, + { + "id": 12, + "name": "IRS-1A", + "launch_date": "1988-03-17", + "launch_vehicle": "Vostok", + "mission_type": "Operational Remote Sensing", + "orbit_type": "SSO", + "mass_kg": 975.0, + "status": "decommissioned" + }, + { + "id": 13, + "name": "SROSS-2", + "launch_date": "1988-07-13", + "launch_vehicle": "Augmented Satellite Launch Vehicle (ASLV)", + "mission_type": "Experimental", + "orbit_type": "Failed", + "mass_kg": 150.0, + "status": "failed" + }, + { + "id": 14, + "name": "INSAT-1C", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 15, + "name": "INSAT-1D", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 16, + "name": "IRS-1B", + "launch_date": "1991-08-29", + "launch_vehicle": "Vostok", + "mission_type": "Operational Remote Sensing", + "orbit_type": "SSO", + "mass_kg": 975.0, + "status": "decommissioned" + }, + { + "id": 17, + "name": "SROSS-C", + "launch_date": "1992-05-20", + "launch_vehicle": "Augmented Satellite Launch Vehicle (ASLV)", + "mission_type": "Experimental", + "orbit_type": null, + "mass_kg": 106.1, + "status": "decommissioned" + }, + { + "id": 18, + "name": "INSAT-2A", + "launch_date": "1992-07-10", + "launch_vehicle": "Ariane 4", + "mission_type": "Multipurpose Communication, meteorology and Satellite based search and rescue", + "orbit_type": "GEO", + "mass_kg": 1906.0, + "status": "decommissioned" + }, + { + "id": 19, + "name": "INSAT-2B", + "launch_date": "1993-07-23", + "launch_vehicle": "Ariane 4", + "mission_type": "Multipurpose Communication, meteorology and Satellite based search and rescue", + "orbit_type": "GEO", + "mass_kg": 1906.0, + "status": "decommissioned" + }, + { + "id": 20, + "name": "IRS-1E", + "launch_date": "1993-09-20", + "launch_vehicle": "PSLV-D1", + "mission_type": "Operational Remote Sensing", + "orbit_type": "Failed", + "mass_kg": 846.0, + "status": "failed" + }, + { + "id": 21, + "name": "SROSS-C2", + "launch_date": "1994-05-04", + "launch_vehicle": "Augmented Satellite Launch Vehicle (ASLV)", + "mission_type": "Experimental", + "orbit_type": null, + "mass_kg": 115.0, + "status": "decommissioned" + }, + { + "id": 22, + "name": "IRS-P2", + "launch_date": "1994-10-15", + "launch_vehicle": "PSLV-D2", + "mission_type": "Operational Remote Sensing", + "orbit_type": null, + "mass_kg": 804.0, + "status": "decommissioned" + }, + { + "id": 23, + "name": "INSAT-2C", + "launch_date": "1995-12-07", + "launch_vehicle": "Ariane4", + "mission_type": "Communication", + "orbit_type": "GEO", + "mass_kg": 2106.0, + "status": "decommissioned" + }, + { + "id": 24, + "name": "IRS-1C", + "launch_date": "1995-12-28", + "launch_vehicle": "Molniya", + "mission_type": "Operational Remote Sensing", + "orbit_type": "SSO", + "mass_kg": 1250.0, + "status": "decommissioned" + }, + { + "id": 25, + "name": "IRS-P3", + "launch_date": "1996-03-21", + "launch_vehicle": "PSLV-D3", + "mission_type": "Remote sensing of earth's natural resources. Study of X-ray Astronomy. Periodic calibration of PSLV tracking radar located at tracking stations.", + "orbit_type": "SSO", + "mass_kg": 920.0, + "status": "decommissioned" + }, + { + "id": 26, + "name": "INSAT-2D", + "launch_date": "1997-06-04", + "launch_vehicle": "Arianev 4", + "mission_type": "Communication", + "orbit_type": "GEO", + "mass_kg": 2079.0, + "status": "decommissioned" + }, + { + "id": 27, + "name": "IRS-1D", + "launch_date": "1995-12-28", + "launch_vehicle": "Molniya", + "mission_type": "Operational Remote Sensing", + "orbit_type": "SSO", + "mass_kg": 1250.0, + "status": "decommissioned" + }, + { + "id": 28, + "name": "INSAT-2E", + "launch_date": "1999-04-03", + "launch_vehicle": "Ariane – 42P", + "mission_type": "Communication and Meteorology", + "orbit_type": "GEO", + "mass_kg": 2550.0, + "status": "decommissioned" + }, + { + "id": 29, + "name": "Oceansat(IRS-P4)", + "launch_date": "1999-05-26", + "launch_vehicle": "PSLV - C2", + "mission_type": null, + "orbit_type": "SSO", + "mass_kg": 1050.0, + "status": "decommissioned" + }, + { + "id": 30, + "name": "INSAT-3B", + "launch_date": "2000-03-22", + "launch_vehicle": "Ariane -5", + "mission_type": null, + "orbit_type": "GEO", + "mass_kg": 2070.0, + "status": "unknown" + }, + { + "id": 31, + "name": "GSAT-1", + "launch_date": "2001-04-18", + "launch_vehicle": "GSLV – D1", + "mission_type": "Communication", + "orbit_type": "GEO", + "mass_kg": 1530.0, + "status": "unknown" + }, + { + "id": 32, + "name": "The Technology Experiment Satellite (TES)", + "launch_date": "2001-10-22", + "launch_vehicle": "PSLV- C3", + "mission_type": null, + "orbit_type": "SSO", + "mass_kg": null, + "status": "unknown" + }, + { + "id": 33, + "name": "INSAT-3C", + "launch_date": "2002-01-24", + "launch_vehicle": "Ariane5-V147", + "mission_type": "Communication, broadcasting and Meteorology", + "orbit_type": "GEO", + "mass_kg": 2650.0, + "status": "unknown" + }, + { + "id": 34, + "name": "KALPANA-1", + "launch_date": "2002-09-12", + "launch_vehicle": "PSLV – C4", + "mission_type": null, + "orbit_type": "GEO", + "mass_kg": 1060.0, + "status": "decommissioned" + }, + { + "id": 35, + "name": "INSAT-3A", + "launch_date": "2003-04-10", + "launch_vehicle": "Ariane5-V160", + "mission_type": "Telecommunication, broadcasting and Meteorology", + "orbit_type": "GEO", + "mass_kg": 2950.0, + "status": "decommissioned" + }, + { + "id": 36, + "name": "GSAT-2", + "launch_date": "2003-05-08", + "launch_vehicle": "GSLV–D2", + "mission_type": "Communication", + "orbit_type": "GEO", + "mass_kg": 1800.0, + "status": "unknown" + }, + { + "id": 37, + "name": "INSAT-3E", + "launch_date": "2003-09-28", + "launch_vehicle": "Ariane5-V162", + "mission_type": "Communication", + "orbit_type": "GEO", + "mass_kg": 2775.0, + "status": "unknown" + }, + { + "id": 38, + "name": "IRS-P6 / RESOURCESAT-1", + "launch_date": "2003-10-17", + "launch_vehicle": "PSLV-C5", + "mission_type": null, + "orbit_type": "SSO", + "mass_kg": 1360.0, + "status": "decommissioned" + }, + { + "id": 39, + "name": "EDUSAT", + "launch_date": "2004-09-20", + "launch_vehicle": "GSLV-F01", + "mission_type": "Education", + "orbit_type": "GEO", + "mass_kg": 1950.5, + "status": "decommissioned" + }, + { + "id": 40, + "name": "HAMSAT", + "launch_date": "2005-05-05", + "launch_vehicle": "PSLV-C6", + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": "unknown" + }, + { + "id": 41, + "name": "CARTOSAT-1", + "launch_date": "2005-05-05", + "launch_vehicle": "PSLV- C6", + "mission_type": null, + "orbit_type": "SSO", + "mass_kg": 1560.0, + "status": "decommissioned" + }, + { + "id": 42, + "name": "INSAT-4A", + "launch_date": "2005-12-22", + "launch_vehicle": "ARIANE5-V169", + "mission_type": null, + "orbit_type": "GEO", + "mass_kg": 3081.0, + "status": "decommissioned" + }, + { + "id": 43, + "name": "INSAT-4C", + "launch_date": "2007-09-02", + "launch_vehicle": "GSLV-F04", + "mission_type": "Communication", + "orbit_type": "GEO", + "mass_kg": 2130.0, + "status": "decommissioned" + }, + { + "id": 44, + "name": "SRE-1", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 45, + "name": "CARTOSAT-2", + "launch_date": "2007-01-10", + "launch_vehicle": "PSLV- C7", + "mission_type": "Remote Sensing", + "orbit_type": "SSO", + "mass_kg": 650.0, + "status": "decommissioned" + }, + { + "id": 46, + "name": "INSAT-4B", + "launch_date": "2007-03-12", + "launch_vehicle": "Ariane5", + "mission_type": "Communication", + "orbit_type": "GEO", + "mass_kg": 3025.0, + "status": "decommissioned" + }, + { + "id": 47, + "name": "INSAT-4CR", + "launch_date": "2007-09-02", + "launch_vehicle": "GSLV-F04", + "mission_type": "Communication", + "orbit_type": "GEO", + "mass_kg": 2130.0, + "status": "decommissioned" + }, + { + "id": 48, + "name": "CARTOSAT-2A", + "launch_date": "2008-04-28", + "launch_vehicle": "PSLV- C9", + "mission_type": "Remote Sensing", + "orbit_type": "SSO", + "mass_kg": 690.0, + "status": "decommissioned" + }, + { + "id": 49, + "name": "IMS-1", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": "SSO", + "mass_kg": 83.0, + "status": "unknown" + }, + { + "id": 50, + "name": "Chandrayaan-1", + "launch_date": "2008-10-22", + "launch_vehicle": "PSLV - C11", + "mission_type": "Remote Sensing, Planetary Science", + "orbit_type": "Lunar", + "mass_kg": 1380.0, + "status": "decommissioned" + }, + { + "id": 51, + "name": "RISAT-2", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": "LEO", + "mass_kg": 300.0, + "status": "unknown" + }, + { + "id": 52, + "name": "Oceansat-2", + "launch_date": "2009-09-23", + "launch_vehicle": "PSLV - C14", + "mission_type": null, + "orbit_type": "SSO", + "mass_kg": 960.0, + "status": "decommissioned" + }, + { + "id": 53, + "name": "GSAT-4", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 54, + "name": "CARTOSAT-2B", + "launch_date": "2010-07-12", + "launch_vehicle": "PSLV- C15", + "mission_type": "Remote Sensing", + "orbit_type": "SSO", + "mass_kg": 694.0, + "status": "unknown" + }, + { + "id": 55, + "name": "GSAT-5P", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 56, + "name": "YOUTHSAT", + "launch_date": "2011-04-20", + "launch_vehicle": "PSLV- C16", + "mission_type": null, + "orbit_type": "SSO", + "mass_kg": 92.0, + "status": "decommissioned" + }, + { + "id": 57, + "name": "RESOURCESAT-2", + "launch_date": "2011-04-20", + "launch_vehicle": "PSLV- C16", + "mission_type": "Remote Sensing", + "orbit_type": "SSO", + "mass_kg": 1206.0, + "status": "decommissioned" + }, + { + "id": 58, + "name": "GSAT-8", + "launch_date": "2011-05-21", + "launch_vehicle": "Ariane-5 VA-202", + "mission_type": "Communication", + "orbit_type": "GEO", + "mass_kg": 3093.0, + "status": "decommissioned" + }, + { + "id": 59, + "name": "GSAT-12", + "launch_date": "2011-07-15", + "launch_vehicle": "PSLV-C17", + "mission_type": "Communication", + "orbit_type": "GEO", + "mass_kg": 1410.0, + "status": "decommissioned" + }, + { + "id": 60, + "name": "Megha-Tropiques", + "launch_date": "2011-10-12", + "launch_vehicle": "PSLV- C18", + "mission_type": null, + "orbit_type": null, + "mass_kg": 1000.0, + "status": "unknown" + }, + { + "id": 61, + "name": "RISAT-1", + "launch_date": "2012-04-26", + "launch_vehicle": "PSLV- C19", + "mission_type": null, + "orbit_type": "SSO", + "mass_kg": 1858.0, + "status": "decommissioned" + }, + { + "id": 62, + "name": "GSAT-10", + "launch_date": "2012-09-29", + "launch_vehicle": "Ariane-5 VA-209", + "mission_type": "Communication", + "orbit_type": "GEO", + "mass_kg": 3400.0, + "status": "active" + }, + { + "id": 63, + "name": "SARAL", + "launch_date": "2013-02-25", + "launch_vehicle": "PSLV - C20", + "mission_type": null, + "orbit_type": "SSO", + "mass_kg": 407.0, + "status": "decommissioned" + }, + { + "id": 64, + "name": "IRNSS-1A", + "launch_date": "2013-07-01", + "launch_vehicle": "PSLV - C22", + "mission_type": null, + "orbit_type": "GEO", + "mass_kg": 1425.0, + "status": "decommissioned" + }, + { + "id": 65, + "name": "INSAT-3D", + "launch_date": "2013-07-26", + "launch_vehicle": "Ariane-5 VA-214", + "mission_type": "Meteorological and Search & Rescue Services", + "orbit_type": "GEO", + "mass_kg": 2060.0, + "status": "decommissioned" + }, + { + "id": 66, + "name": "GSAT-7", + "launch_date": "2013-08-30", + "launch_vehicle": "Ariane-5 VA-215", + "mission_type": "Communication", + "orbit_type": "GEO", + "mass_kg": 2650.0, + "status": "decommissioned" + }, + { + "id": 67, + "name": "Mars Orbiter Mission Spacecraft", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 68, + "name": "GSAT-14", + "launch_date": "2014-01-05", + "launch_vehicle": "GSLV-D5", + "mission_type": null, + "orbit_type": "GEO", + "mass_kg": 1982.0, + "status": "active" + }, + { + "id": 69, + "name": "IRNSS-1B", + "launch_date": "2014-04-04", + "launch_vehicle": "PSLV - C24", + "mission_type": null, + "orbit_type": "GEO", + "mass_kg": 1432.0, + "status": "decommissioned" + }, + { + "id": 70, + "name": "IRNSS-1C", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 71, + "name": "GSAT-16", + "launch_date": "2001-04-18", + "launch_vehicle": "GSLV – D1", + "mission_type": "Communication", + "orbit_type": "GEO", + "mass_kg": 1530.0, + "status": "unknown" + }, + { + "id": 72, + "name": "Crew module Atmospheric Re-entry Experiment (CARE)", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 73, + "name": "IRNSS-1D", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 74, + "name": "GSAT-6", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": "unknown" + }, + { + "id": 75, + "name": "Astrosat", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 76, + "name": "GSAT-15", + "launch_date": "2015-11-11", + "launch_vehicle": "Ariane-5 VA-227", + "mission_type": "Communication and Satellite Navigation", + "orbit_type": "GEO", + "mass_kg": 3164.0, + "status": "active" + }, + { + "id": 77, + "name": "IRNSS-1E", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 78, + "name": "IRNSS-1F", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 79, + "name": "IRNSS-1G", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 80, + "name": "CARTOSAT-2 Series Satellite", + "launch_date": "2007-01-10", + "launch_vehicle": "PSLV- C7", + "mission_type": "Remote Sensing", + "orbit_type": "SSO", + "mass_kg": 650.0, + "status": "decommissioned" + }, + { + "id": 81, + "name": "INSAT-3DR", + "launch_date": "2013-07-26", + "launch_vehicle": "Ariane-5 VA-214", + "mission_type": "Meteorological and Search & Rescue Services", + "orbit_type": "GEO", + "mass_kg": 2060.0, + "status": "decommissioned" + }, + { + "id": 82, + "name": "SCATSAT-1", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 83, + "name": "GSAT-18", + "launch_date": "2001-04-18", + "launch_vehicle": "GSLV – D1", + "mission_type": "Communication", + "orbit_type": "GEO", + "mass_kg": 1530.0, + "status": "unknown" + }, + { + "id": 84, + "name": "RESOURCESAT-2A", + "launch_date": "2011-04-20", + "launch_vehicle": "PSLV- C16", + "mission_type": "Remote Sensing", + "orbit_type": "SSO", + "mass_kg": 1206.0, + "status": "decommissioned" + }, + { + "id": 85, + "name": "INS-1B", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 86, + "name": "INS-1A", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 87, + "name": "Cartosat-2 Series Satellite", + "launch_date": "2007-01-10", + "launch_vehicle": "PSLV- C7", + "mission_type": "Remote Sensing", + "orbit_type": "SSO", + "mass_kg": 650.0, + "status": "decommissioned" + }, + { + "id": 88, + "name": "GSAT-9", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 89, + "name": "GSAT-19", + "launch_date": "2001-04-18", + "launch_vehicle": "GSLV – D1", + "mission_type": "Communication", + "orbit_type": "GEO", + "mass_kg": 1530.0, + "status": "unknown" + }, + { + "id": 90, + "name": "Cartosat-2 Series Satellite", + "launch_date": "2007-01-10", + "launch_vehicle": "PSLV- C7", + "mission_type": "Remote Sensing", + "orbit_type": "SSO", + "mass_kg": 650.0, + "status": "decommissioned" + }, + { + "id": 91, + "name": "GSAT-17", + "launch_date": "2001-04-18", + "launch_vehicle": "GSLV – D1", + "mission_type": "Communication", + "orbit_type": "GEO", + "mass_kg": 1530.0, + "status": "unknown" + }, + { + "id": 92, + "name": "IRNSS-1H", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 93, + "name": "INS-1C", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 94, + "name": "Cartosat-2 Series Satellite", + "launch_date": "2007-01-10", + "launch_vehicle": "PSLV- C7", + "mission_type": "Remote Sensing", + "orbit_type": "SSO", + "mass_kg": 650.0, + "status": "decommissioned" + }, + { + "id": 95, + "name": "Microsat", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 96, + "name": "GSAT-6A", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": "unknown" + }, + { + "id": 97, + "name": "IRNSS-1I", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 98, + "name": "GSAT-29", + "launch_date": "2003-05-08", + "launch_vehicle": "GSLV–D2", + "mission_type": "Communication", + "orbit_type": "GEO", + "mass_kg": 1800.0, + "status": "unknown" + }, + { + "id": 99, + "name": "HysIS", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 100, + "name": "GSAT-11 Mission", + "launch_date": "2001-04-18", + "launch_vehicle": "GSLV – D1", + "mission_type": "Communication", + "orbit_type": "GEO", + "mass_kg": 1530.0, + "status": "unknown" + }, + { + "id": 101, + "name": "GSAT-7A", + "launch_date": "2013-08-30", + "launch_vehicle": "Ariane-5 VA-215", + "mission_type": "Communication", + "orbit_type": "GEO", + "mass_kg": 2650.0, + "status": "decommissioned" + }, + { + "id": 102, + "name": "Microsat-R", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 103, + "name": "GSAT-31", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 104, + "name": "EMISAT", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 105, + "name": "RISAT-2B", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": "LEO", + "mass_kg": 628.0, + "status": "unknown" + }, + { + "id": 106, + "name": "Chandrayaan2", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 107, + "name": "Cartosat-3", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": "LEO", + "mass_kg": 1625.0, + "status": "unknown" + }, + { + "id": 108, + "name": "RISAT-2BR1", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": "LEO", + "mass_kg": 628.0, + "status": "unknown" + }, + { + "id": 109, + "name": "GSAT-30", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 110, + "name": "EOS-01", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 111, + "name": "CMS-01", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 112, + "name": "EOS-03", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + }, + { + "id": 113, + "name": "Chandrayaan3", + "launch_date": null, + "launch_vehicle": null, + "mission_type": null, + "orbit_type": null, + "mass_kg": null, + "status": null + } + ] +} \ No newline at end of file diff --git a/index.html b/index.html index 28a95d3..a2b6adc 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ - ISRO-API + ISRO API @@ -12,32 +12,33 @@
-

ISRO 🚀 API

+

ISRO API

- Open Source API for Launched Spacecrafts & Rockets data of ISRO + Open Source API for ISRO spacecraft, launcher, and mission data

API End-Points


Contribute at GitHub

diff --git a/isro_scrape/isro_spacecrafts_scraper_output.json b/isro_scrape/isro_spacecrafts_scraper_output.json new file mode 100644 index 0000000..5866923 --- /dev/null +++ b/isro_scrape/isro_spacecrafts_scraper_output.json @@ -0,0 +1,822 @@ +[ + { + "name": "\n\n Aryabhata\n \n", + "id": 1, + "mission": "Scientific/ Experimental", + "weight": "360 kg", + "on_board_power": "46 Watts", + "communication": "VHF band", + "stabilization": "Spinstabilize", + "payload": "X-ray Astronomy Aeronomy & Solar Physics", + "launch_date": "April 19, 1975", + "launch_site": "Volgograd Launch Station (presently in Russia)", + "launch_vehicle": "C-1 Intercosmos", + "orbit": "563 x 619 km", + "inclination": "50.7 deg", + "mission_life": "6 months(nominal), Spacecraft mainframe active till March,1981", + "orbital_life": "Nearly seventeen years (Re-entered on February 10,1992)" + }, + { + "name": "\n\n Bhaskara-I\n \n", + "id": 2, + "mission": "Experimental Remote Sensing", + "weight": "442 kg", + "onboard_power": "47 Watts", + "communication": "VHF band", + "stabilization": "Spin stabilized (spin axis controlled)", + "payload": "TVcameras, three band Microwave Radiometer (SAMIR)", + "launch_date": "Jun 07,1979", + "launch_site": "Volgograd Launch Station (presently in Russia)", + "launch_vehicle": "C-1Intercosmos", + "orbit": "519 x 541 km", + "inclination": "50.6 deg", + "mission_life": "One year (nominal)", + "orbital_life": "About 10 years ( Re-entered in 1989 )" + }, + { + "name": "\n\n Rohini Technology Payload\n (RTP)\n \n", + "id": 3, + "mission": "Experimental", + "weight": "35 kg", + "onboard_power": "3 Watts", + "communication": "VHF band", + "stabilization": "Spin stabilized (spin axis controlled)", + "payload": "Launch vehicle monitoring instruments", + "launch_date": "August 10,1979", + "launch_site": "SHAR Centre, Sriharikota, India", + "launch_vehicle": "SLV-3", + "orbit": "Not achieved" + }, + { + "name": "\n\n Rohini Satellite RS-1\n \n", + "id": 4, + "mission": "Experimental", + "weight": "35 kg", + "onboard_power": "16 Watts", + "communication": "VHF band", + "stabilization": "Spin stabilized", + "payload": "Launch vehicle monitoring instruments", + "launch_date": "July 18,1980", + "launch_site": "SHAR Centre, Sriharikota, India", + "launch_vehicle": "SLV-3", + "orbit": "305 x 919 km", + "inclination": "44.7 deg.", + "mission_life": "1.2 years", + "orbital_life": "20 months" + }, + { + "name": "\n\n Rohini Satellite RS-D1\n \n", + "id": 5, + "mission": "Experimental", + "weight": "38 kg", + "onboard_power": "16 Watts", + "communication": "VHF band", + "stabilization": "Spin stabilized", + "payload": "Landmark Tracker ( remote sensing payload)", + "launch_date": "May 31,1981", + "launch_site": "SHAR Centre, Sriharikota, India", + "launch_vehicle": "SLV-3", + "orbit": "186 x 418 km (achieved)", + "inclination": "46 deg", + "orbital_life": "Nine days" + }, + { + "name": "\n\n APPLE\n \n", + "id": 6, + "mission": "Experimental geostationary communication", + "weight": "670 kg", + "onboard_power": "210 Watts", + "communication": "VHF and C-band", + "stabilization": "Three axis stabilized (biased momentum) with Momentum Wheels, Torquers & \u00a0Hydrazine based Reaction control system", + "payload": "C - band transponders (Two)", + "launch_date": "June19,1981", + "launch_site": "Kourou (CSG), French Guyana", + "launch_vehicle": "Ariane -1(V-3)", + "orbit": "Geosynchronous (102 deg. E\u00a0 longitude, over Indonesia)", + "inclination": "Near zero", + "mission_life": "Two years" + }, + { + "name": "\n\n Bhaskara-II\n \n", + "id": 7, + "mission": "Experimental Remote Sensing", + "weight": "444 kg", + "onboard_power": "47 Watts", + "communication": "VHF band", + "stabilization": "Spin stabilized (spin axis controlled)", + "payload": "TV cameras, three band Microwave Radiometer (SAMIR)", + "launch_date": "Nov 20, 1981", + "launch_site": "Volgograd Launch Station (presently in Russia)", + "launch_vehicle": "C-1 Intercosmos", + "orbit": "541 x 557 km", + "inclination": "50.7o", + "mission_life": "One year (nominal)", + "orbital_life": "About 10 years ( Re-entered in 1991 )" + }, + { + "name": "\n\n Rohini Satellite RS-D2\n \n", + "id": 8, + "mission": "Experimental", + "weight": "41.5 kg", + "onboard_power": "16 Watts", + "communication": "VHF band", + "stabilization": "Spin stabilized", + "payload": "Smart sensor (remote sensing payload), L-band beacon", + "launch_date": "April 17, 1983", + "launch_site": "SHAR Centre, Sriharikota, India", + "launch_vehicle": "SLV-3", + "orbit": "371 x 861 km", + "inclination": "46o", + "mission_life": "17 months", + "orbital_life": "Seven years (Re-entered on April 19, 1990)" + }, + { + "name": "\n\n SROSS-1\n \n", + "id": 9, + "mission": "Experimental", + "weight": "150 kg", + "onboard_power": "90 Watts", + "communication": "S-band and VHF", + "stabilization": "Three axis body stabilized (biased momentum) with a Momentum Wheel and Magnetic Torquer", + "propulsion_system": "Monopropellant (Hydrazine based) Reaction control system", + "payload": "Launch Vehicle Monitoring Platform(LVMP), Gamma Ray Burst (GRB) payload and Corner Cube Retro Reflector (CCRR) for laser tracking", + "launch_date": "March 24, 1987", + "launch_site": "SHAR Centre, Sriharikota, India", + "launch_vehicle": "Augmented Satellite Launch Vehicle (ASLV)", + "orbital_life": "Not realised" + }, + { + "name": "\n\n IRS-1A\n \n", + "id": 10, + "mission": "Operational Remote Sensing", + "weight": "975 kg", + "onboard_power": "600 Watts", + "communication": "S-band, X-band and VHF(commanding only)", + "stabilization": "Three axis body stabilized (zero momentum) with 4 Reactions Wheels, Magnetic torquers", + "rcs": "Monopropellant Hydrazine based with sixteen 1 Newton thrusters", + "payload": "Three solid state Push Broom Cameras: LISS-1(72.5 metre resolution), LISS-2A and LISS-2B (36.25 metre resolution)", + "launch_date": "March 17, 1988", + "launch_site": "Baikanur Cosmodrome Kazakhstan", + "launch_vehicle": "Vostok", + "orbit": "904 km Polar Sun-synchronous", + "inclination": "99.08o", + "repetivity": "22 days (307 orbits)", + "local_time": "10.30 a.m. (descending node)", + "mission_completed_during": "July 1996" + }, + { + "name": "\n\n SROSS-2\n \n", + "id": 11, + "mission": "Experimental", + "weight": "150 kg", + "onboard_power": "90 Watts", + "communication": "S-band and VHF", + "stabilization": "Three axis body stabilized (biased momentum) with a Momentum Wheel and Magnetic Torquer", + "propulsion_system": "Monopropellant (Hydrazine based) Reaction Control System", + "payload": "Gamma Ray Burst (GRB) payload and Mono Payload Ocular Electro-Optic Stereo Scanner (MEOSS) built by DLR, Germany", + "launch_date": "July 13, 1988", + "launch_site": "SHAR Centre, Sriharikota, India", + "launch_vehicle": "Augmented Satellite Launch Vehicle (ASLV)", + "orbit": "Not realised" + }, + { + "name": "\n\n IRS-1B\n \n", + "id": 12, + "mission": "Operational Remote Sensing", + "weight": "975 kg", + "onboard_power": "600 Watts", + "communication": "S-band, X-band and VHF (commanding only)", + "stabilization": "Three axis body stabilized (zero momentum) with 4 Reactions Wheels, Magnetic torquers", + "rcs": "Monopropellant Hydrazine based with sixteen 1 Newton thrusters", + "payload": "Three solid state Push Broom Cameras LlSS-1 (72.5 metre resolution), LlSS-2A and LlSS-2B (36.25 metre resolution)", + "launch_date": "August 29, 1991", + "launch_site": "Baikanur Cosmodrome Kazakhstan", + "launch_vehicle": "Vostok", + "orbit": "904 km Polar Sun Synchronous", + "inclination": "99.08o", + "repetivity": "22 days", + "local_time": "10.30 a.m. (descending node)", + "mission_completed_on": "December 20, 2003" + }, + { + "name": "\n\n SROSS-C\n \n", + "id": 13, + "mission": "Experimental", + "weight": "106.1 kg", + "onboard_power": "45 Watts", + "communication": "S-band and VHF", + "stabilization": "Spin stabilized with a Magnetic Torquer and Magnetic Bias Control", + "payload": "Gamma Ray Burst (GRB) experiment & Retarding Potential Analyser (RPA) experiment", + "launch_date": "May 20,1992", + "launch_site": "SHAR Centre, Sriharikota, India", + "launch_vehicle": "Augmented Satellite Launch Vehicle (ASLV)", + "orbit": "267 x 391 km", + "mission_life": "Two months (Re-entered on July15,1992)" + }, + { + "name": "\n\n INSAT-2A\n \n", + "id": 14, + "mission": "Multipurpose Communication, meteorology and Satellite based search and rescue", + "weight": "1906 kg with propellant 916 kg dry weight", + "onboard_power": "One KW approx", + "communication": "C, extended C and S band", + "stabilization": "Three axis body stabilized with two Momentum Wheels & one Reaction Wheel, Magnetic torquers", + "propulsion": "Integrated bipropellant system (MMH and N2 04) With sixteen 22 N thrusters and 440 LAM.", + "payload": "Transponders: 12 C-band (for FSS),6 ext. C-band (for FSS) 2 S-band (for BSS),1Data relay transponder (for met.data), 1 transponder for research and rescue, Very High Resolution radiometer (VHRR) for\u00a0meteorological observation with 2 km resolution in the visible and 8 km resolution in the IR band", + "launch_date": "July 10,1992", + "launch_site": "French Guyana", + "launch_vehicle": "Ariane 4", + "orbit": "Geostationary 74oE longitude", + "inclination": "0o", + "mission_life": "Seven years(nominal)", + "orbit_life": "Very Long" + }, + { + "name": "\n\n INSAT-2B\n \n", + "id": 15, + "mission": "Multipurpose Communication, meteorology and Satellite based search and rescue", + "weight": "1906 kg with propellant 916 kg dry weight", + "onboard_power": "One KW approx.", + "communication": "C, extended C and S band", + "stabilization": "Three axis body stabilized with two Momentum Wheels & one Reaction Wheel, Magnetic torquers", + "propulsion": "Integrated bipropellant system ( MMH and N2 04) With sixteen 22 N thrusters and 440 N LAM.", + "payload": "Transponders: 12C-band (for FSS),6 ext. C-band (for FSS) 2S-band (for BSS),1Data relay transponder (for met.data), 1 transponder for research and rescue, Very High Resolution radiometer (VHRR) for meteorological observation with 2 km resolution in the visible and 8 km resolution in the IR band", + "launch_date": "July 23, 1993", + "launch_site": "French Guyana", + "launch_vehicle": "Ariane 4", + "orbit": "Geostationary 93.5o E", + "inclination": "0o", + "mission_life": "Seven years(nominal)", + "orbit_life": "Very Long" + }, + { + "name": "\n\n IRS-1E\n \n", + "id": 16, + "mission": "Operational Remote Sensing", + "weight": "846 kg", + "onboard_power": "415 Watts", + "communication": "S-band (TIC) & VHF", + "stabilization": "Three axis body stabilized ( zero momentum) with 4 Reaction Wheels, Magnetic torquers", + "rcs": "Monopropellant Hydrazine based RCS with 1 Newton thrusters ( 16 Nos.)", + "payload": "LlSS-1 MEOSS (Mono-ocula Erlectro Optic Stereo Scanner)", + "launch_date": "September 20, 1993", + "launch_site": "SHAR Centre, Sriharikota, India", + "launch_vehicle": "PSLV-D1", + "orbit": "Not realised" + }, + { + "name": "\n\n SROSS-C2\n \n", + "id": 17, + "mission": "Experimental", + "weight": "115 kg", + "onboard_power": "45 Watts", + "communication": "S-band and VHF", + "rcs": "Monopropellant Hydrazine based with six 1 Newton thrusters", + "payload": "Gamma Ray Burst (GRB) & Retarding Potential Analyser (RPA)", + "launch_date": "May 04,1994", + "launch_site": "SHAR Centre,Sriharikota,India", + "launch_vehicle": "Augmented Satellite Launch Vehicle (ASLV)", + "orbit": "430 x 600 km.", + "inclination": "45 deg.", + "mission_life": "Six months (nominal)", + "orbital_life": "Two years (nominal)" + }, + { + "name": "\n\n IRS-P2\n \n", + "id": 18, + "mission": "Operational Remote Sensing", + "weight": "804 kg", + "onboard_power": "510 Watts", + "communication": "S-band, X-band", + "stabilization": "Three axis body stabilized with 4 Reaction Wheels, Magnetic torquers", + "rcs": "4 tanks containing Monopropellant Hydrazine based with sixteen 1 N thrusters and one 11 N thruster", + "payload": "Two solid state Push Broom Cameras operating in four spectral bands in the visible and near-IR range using CCD arrays: LlSS-2A & LlSS-2B (Resolution: 32.74 metre)", + "launch_date": "October 15, 1994", + "launch_site": "SHAR Centre, Sriharikota, India", + "launch_vehicle": "PSLV-D2", + "inclination": "98.68 o", + "repetivity": "24 days", + "mission_completed_on": "1997" + }, + { + "name": "\n\n INSAT-2C\n \n", + "id": 19, + "mission": "Communication", + "weight": "2106 kg with propellants 946 kg dry weight", + "onboard_power": "1320 Watts", + "communication": "C extended C, S and Ku bands", + "stabilization": "Three axis stabilized with two Momen'tum Wheels & one Reaction Wheel, Magnetic torquers", + "propulsion": "Integrated bipropellant system ( MMH and N2 04) With sixteen 22N thrusters and 440N LAM.", + "payload": "Transponders: 16C-band / extended C-band transponders (for FSS), 2 high power C-band transponders (for BSS), 1S-band transponder (for BSS),1C/S-band mobile communication transponder, 3 Ku-band transponders", + "launch_date": "December 7, 1995", + "launch_site": "French Guyana", + "launch_vehicle": "Ariane4", + "orbit": "Geostationary 93.5 deg E", + "inclination": "0 deg.", + "mission_life": "Seven years(nominal)", + "orbit_life": "Very Long" + }, + { + "name": "\n\n IRS-1C\n \n", + "id": 20, + "mission": "Operational Remote Sensing", + "weight": "1250 kg", + "onboard_power": "809 Watts (generated by 9.6 sq.metres Solar Panels)", + "communication": "S-band, X-band", + "stabilization": "Three axis body stabilized (zero momentum) with 4 Reaction Wheels, Magnetic torquer", + "rcs": "Monopropellant Hydrazine based with sixteen 1 N thrusters & one 11N thrusters", + "payload": "Three solid state Push Broom Cameras: PAN (<6 metre solution )LlSS-3(23.6 metre resolution) and WiFS (189 metre resolution)", + "onboard_tape_recorder": "Storage Capacity : 62 G bits", + "launch_date": "December 28, 1995", + "launch_site": "Baikanur Cosmodrome Kazakhstan", + "launch_vehicle": "Molniya", + "orbit": "817 km Polar Sun-synchronous", + "inclination": "98.69o", + "repetivity": "24 days", + "local_time": "10.30 a.m", + "mission_completed_on": "September 21, 2007" + }, + { + "name": "\n\n IRS-P3\n \n", + "id": 21, + "mission": "Remote sensing of earth's natural resources. Study of X-ray Astronomy. Periodic calibration of PSLV tracking radar located at tracking stations.", + "weight": "920 kg", + "onboard_power": "817 Watts", + "communication": "S-band", + "stabilization": "Three axis body stabilized", + "rcs": "Combinations of bladder type and surface tension type mass expulsion monopropellant hydrazine system", + "payload": "WideField Sensor (WiFS), Modular Opto - electronic Scanner (MOS), Indian X-ray Astronomy Experiment (IXAE), C-band transponder(CBT)", + "launch_date": "March 21, 1996", + "launch_site": "SHAR Centre, Sriharikota, India", + "launch_vehicle": "PSLV-D3", + "orbit": "817 km. Circular polar sun-synchronous with equatorial crossing at 10.30 am (descending node)", + "inclination": "98.68o", + "repetivity": "WiFS : 5 days", + "mission_completed_during": "January 2006" + }, + { + "name": "\n\n INSAT-2D\n \n", + "id": 22, + "mission": "Communication", + "weight": "2079 kg with propellants, 995 kg dry weight", + "onboard_power": "1650 Watts", + "communication": "C, extended C, S and Ku bands", + "stabilization": "Three axis stabilized with two Momentum Wheels & one Reaction Wheel, Magnetic torquers", + "propulsion": "Integrated bipropellan stystem ( MMH and N2 04) With sixteen 22N thrusters and 440N LAM.", + "payload": "Transponders: 16C-band / extended C-band transponders (forFSS), 2 high power C-band transponders (for BSS), 1S-band transponder (for BSS),1C/S-band mobile communication transponder, 3 Ku-band transponders", + "launch_date": "June 4, 1997", + "launch_site": "French Guyana", + "launch_vehicle": "Arianev 4", + "orbit": "Geostationary 93,.5deg.E", + "inclination": "0 deg." + }, + { + "name": "\n\n IRS-1D\n \n", + "id": 23, + "mission": "Operational Remote Sensing", + "weight": "1250 kg", + "onboard_power": "809 Watts (generated by 9.6 sq.metres Solar Panels)", + "communication": "S-band, X-band", + "stabilization": "Three axis body stabilized (zero momentum) with 4 Reaction Wheels, Magnetic torquer", + "rcs": "Monopropellant Hydrazine based with sixteen 1 N thrusters & one 11N thrusters", + "payload": "Three solid state Push Broom Cameras: PAN (<6 metre solution )LlSS-3(23.6 metre resolution) and WiFS (189 metre resolution)", + "onboard_tape_recorder": "Storage Capacity : 62 G bits", + "launch_date": "December 28, 1995", + "launch_site": "Baikanur Cosmodrome Kazakhstan", + "launch_vehicle": "Molniya", + "orbit": "817 km Polar Sun-synchronous", + "inclination": "98.69 o", + "repetivity": "24 days", + "local_time": "10.30 a.m", + "mission_completed_on": "September 21, 2007" + }, + { + "name": "\n\n INSAT-2E\n \n", + "id": 24, + "mission": "Communication and Meteorology", + "spacecraft_mass": "2,550 kg (Mass at Lift-off) 1150 kg (Dry mass)", + "launch_date": "03 April 1999", + "launch_site": "French Guyana", + "launch_vehicle": "Ariane \u2013 42P", + "orbit": "Geosynchronous (83 deg east longitude)" + }, + { + "name": "\n\n Oceansat(IRS-P4)\n \n", + "id": 25, + "launch_date": "May 26, 1999", + "launch_site": "SHAR, Sriharikota", + "launch_vehicle": "PSLV - C2", + "orbit": "Polar Sun Synchronous", + "altitude": "720 km", + "inclination": "98.28 deg", + "period": "99.31 min", + "local_time_of_eq._crossing": "12 noon", + "repetitivity_cycle": "2 days", + "size": "2.8m x 1.98m x 2.57m", + "mass_at_lift_off": "1050 kg", + "length_when_fully_deployed": "11.67 m", + "attitude_and_orbit_control": "3-axis body-stabilised using Reaction Wheels, Magnetic Torquers and Hydrazine Thrusters", + "power": "9.6 Sq.m Solar Array generating 750w Two 21 Ah Ni-Cd Batteries", + "mission_completed_on": "August 8, 2010" + }, + { + "name": "\n\n INSAT-3B\n \n", + "id": 26, + "mission": "Very long", + "spacecraft_mass": "2,070 (Mass at Lift \u2013 off) 970 kg (Dry mass)", + "onboard_power": "1,712 W", + "stabilization": "3 \u2013 axis body stabilised biased momentum control system using earth sensors, sun sensors, inertial reference unit, momentum / reaction wheels, magnetic torquers and unified bi-propellant thrusters.", + "propulsion": "Liquid Apogee Motor with fuel and oxidizer stored in separate titanium tanks and pressurant in Kevlar wound titanium tank.", + "payload": "12 extended C \u2013 band Transponders Five Ku band Transponders Mobile Satellite Services (MSS)", + "launch_date": "22nd March 2000", + "launch_site": "French Guyana", + "launch_vehicle": "Ariane -5", + "orbit": "Geostationary (83 deg East longitude)", + "inclination": "7 deg" + }, + { + "name": "\n PSLV-C3 / TES\n ", + "id": 27, + "launch_date": "22 October 2001", + "launch_site": "SHAR Centre Sriharikota India", + "launch_vehicle": "PSLV- C3", + "orbit": "572 km Sun Synchronous", + "payloads": "PAN" + }, + { + "name": "\n\n The Technology Experiment Satellite\n (TES)\n \n", + "id": 28, + "launch_date": "22 October 2001", + "launch_site": "SHAR Centre Sriharikota India", + "launch_vehicle": "PSLV- C3", + "orbit": "572 km Sun Synchronous", + "payloads": "PAN" + }, + { + "name": "\n\n INSAT-3C\n \n", + "id": 29, + "mission": "Communication, broadcasting and Meteorology", + "spacecraft_mass": "2,650 kg (Mass at Lift - off) 1218 kg (Dry mass)", + "onboard_power": "2765 W", + "propulsion": "Liquid Apogee Motor with fuel and oxidizer stored in separate titanium tanks and pressurant in Kevlar wound titanium tank.", + "payload": "24 C band transponders 6 Extended C - band Transponders 2 S - band Transponders", + "launch_date": "January 24, 2002", + "launch_site": "French Guyana", + "launch_vehicle": "Ariane5-V147", + "orbit": "Geostationary (74o longitude)", + "mission_life": "Very long" + }, + { + "name": "\n\n KALPANA-1\n \n", + "id": 30, + "mission": "7 Years", + "spacecraft_mass": "1060 kg mass (at Lift \u2013 off) 498 kg (Dry mass)", + "onboard_power": "550 W", + "payload": "Very High Resolution Radiometer (VHRR) Data Relay Transponder (DRT)", + "launch_date": "12 September 2002", + "launch_site": "SHAR, Sriharikota", + "launch_vehicle": "PSLV \u2013 C4", + "orbit": "Geostationary (74 deg East longitude)" + }, + { + "name": "\n\n INSAT-3A\n \n", + "id": 31, + "mission": "Telecommunication, broadcasting and Meteorology", + "spacecraft_mass": "2,950 kg (Mass at Lift\u2013off) 1,348 kg (Dry mass)", + "onboard_power": "3,100 W", + "stabilization": "3 \u2013 axis body stabilised in orbit using momentum and reaction wheels, solar flaps, magnetic torquers and eight 10 N and eight 22 N reaction control thrusters", + "propulsion": "440 N Liquid Apogee Motor with MON-3 (Mixed Oxides of Nitrogen) and MMH (Mono Methyl Hydrazine) for orbit raising", + "payload": "Communication payload - 12 C \u2013 band transponders, - 6 upper extended C band transponders - 6 Ku band transponders - 1 Satellite Aided Search & Rescue transponders Meteorological payload - Very High Resolution Radiometer (VHRR) with 2 km resolution in visible band and 8 km resolution in infrared and water vapour band - Charged Coupled Device (CCD) camera operating in visible, near infrared and shortwave infrared band with 1 km resolution. - Data Relay Transponders (DRT)", + "launch_date": "April 10, 2003", + "launch_site": "French Guyana", + "launch_vehicle": "Ariane5-V160", + "orbit": "Geostationary (93.5o E longitude)", + "mission_life": "12 Years" + }, + { + "name": "\n\n INSAT-3E\n \n", + "id": 32, + "mission": "Communication", + "spacecraft_mass": "2,775 kg (Mass at Lift-off) 1218 kg (Dry mass)", + "launch_date": "September 28, 2003", + "launch_site": "French Guyana", + "launch_vehicle": "Ariane5-V162", + "orbit": "Geostationary Orbit" + }, + { + "name": "\n\n IRS-P6 / RESOURCESAT-1\n \n", + "id": 33, + "launch_date": "October 17, 2003", + "launch_site": "SHAR, Sriharikota", + "launch_vehicle": "PSLV-C5", + "payloads": "LISS-4, LISS-3, AWiFS-A, AWiFS-B", + "orbit": "Polar Sun Synchronous", + "orbit_height": "817 km", + "orbit_inclination": "98.7 o", + "orbit_period": "101.35 min", + "number_of_orbits_per_day": "14", + "local_time_of_equator_crossing": "10:30 am", + "repetivity_(liss-3)": "24 days", + "revisit": "5 days", + "lift-off_mass": "1360 kg", + "attitude_and_orbit_control": "3-axis body stabilised using Reaction Wheels, Magnetic Torquers and Hydrazine Thrusters", + "power": "Solar Array generating 1250 W, Two 24 Ah Ni-Cd batteries", + "mission_life": "5 years" + }, + { + "name": "\n\n EDUSAT\n \n", + "id": 34, + "mission": "Education", + "spacecraft_mass": "1950.5 kg mass (at Lift - off) 819.4 kg (Dry mass)", + "onboard_power": "Total four solar panel of size 2.54 M x 1.525 M generating 2040 W (EOL), two 24 AH NiCd batteries for eclipse support", + "stabilization": "3 axis body stabilised in orbit using sensors, momentum and reaction wheels, magnetic torquers and eight 10 N & 22N reaction control thrusters.", + "propulsion": "440 N Liquid Apogee Motor with MON - 3 and MMH for orbit raising", + "payload": "Six upper extended C - band transponders Five lower Ku band transponders with regional beam coverage One lower Ku band National beam transponder with Indian main land coverage Ku beacon 12 C band high power transponders with extended coverage, covering southeast and northwest region apart from Indian main land using 63 W LTWTAs", + "launch_date": "September 20, 2004", + "launch_site": "SHAR, Sriharikota, India", + "launch_vehicle": "GSLV-F01", + "orbit": "Geostationary (74 o E longitude)", + "mission_life": "7 Years (minimum)" + }, + { + "name": "\n\n CARTOSAT-1\n \n", + "id": 35, + "launch_date": "5 May 2005", + "launch_site": "SHAR Centre Sriharikota India", + "launch_vehicle": "PSLV- C6", + "orbit": "618 km Polar Sun Synchronous", + "payloads": "PAN FORE, PAN - AFT", + "orbit_period": "97 min", + "number_of_orbits_per_day": "14", + "local_time_of_equator_crossing": "10:30 am", + "repetivity": "126 days", + "revisit": "5 days", + "lift-off_mass": "1560 kg", + "attitude_and_orbit_control": "3-axis body stabillised using reaction wheels, Magnetic Torquers and Hydrazine Thrusters", + "electrical_power": "15 sqm Solar Array generating 1100w, Two 24 Ah Ni-Cd batteries", + "mission_life": "5 years" + }, + { + "name": "\n\n INSAT-4A\n \n", + "id": 36, + "spacecraft_mass": "Lift off 3081 Kg Dry Mass 1386.55 Kg", + "orbit": "Geostationary ( 83o E)", + "power": "Solar Array to provide a power of 5922 W", + "battery": "Three 70 Ah Ni H2 Batteries for eclipse support of 4264 W", + "life": "12 Years", + "launch_date": "December 22, 2005", + "launch_vehicle": "ARIANE5-V169" + }, + { + "name": "\n\n CARTOSAT-2\n \n", + "id": 37, + "mission": "Remote Sensing", + "weight": "650 Kg", + "onboard_orbit": "900 Watts", + "stabilization": "3 - axis body stabilised using high torque reaction wheels, magnetic torquers and thrusters", + "payloads": "Panchromatic Camera", + "launch_date": "10 January 2007", + "launch_site": "SHAR Centre Sriharikota India", + "launch_vehicle": "PSLV- C7", + "orbit": "Polar Sun Synchronous", + "mission_life": "5 years" + }, + { + "name": "\n\n INSAT-4B\n \n", + "id": 38, + "mission": "Communication", + "weight": "3025 kg (at Lift \u2013 off)", + "onboard_power": "5859 W", + "stabilization": "It uses 3 earth sensors, 2 digital sun sensors, 8 coarse analog sun sensors, 3 solar panel sun sensors and one sensor processing electronics. The wheels and wheel drive electronics were imported with indigenous wheel interface module to interface the wheel drive electronics and AOCE.", + "propulsion": "The propulsion system is employing 16 thrusters, 4 each located on east, west and AY sides and 2 each on north and south sides. There is one 440 N liquid apogee motor (using Mono Methyl Hydrazine (MMH) as fuel and oxides of Nitrogen (MON3 as oxidizer) and three pressurant tanks mounted on the LAM deck.", + "payload": "12 Ku band high power transponders covering Indian main land using 140W radiatively cooled TWTAs.", + "launch_date": "March 12, 2007", + "launch_site": "French Guiana", + "launch_vehicle": "Ariane5", + "orbit": "Geostationary (93.5 o E Longitude)", + "mission_life": "12 Years" + }, + { + "name": "\n\n INSAT-4CR\n \n", + "id": 39, + "mission": "Communication", + "weight": "2,130 kg (Mass at Lift \u2013 off)", + "onboard_power": "3000 W", + "communication_payload": "12 Ku-band transponders employing 140 W Traveling Wave Tube Amplifiers (TWTA) Ku-band Beacon", + "launch_date": "September 2, 2007", + "launch_site": "SHAR, Sriharikota, India", + "launch_vehicle": "GSLV-F04", + "orbit": "Geosynchronous (74\u00b0 E)", + "mission_life": "12 Years" + }, + { + "name": "\n\n CARTOSAT \u2013\n 2A\n \n", + "id": 40, + "mission": "Remote Sensing", + "weight": "690 Kg (Mass at lift off)", + "onboard_power": "900 Watts", + "stabilization": "3 \u2013 axis body stabilised using high torque reaction wheels, magnetic torquers and hydrogen thrusters", + "payloads": "Panchromatic Camera", + "launch_date": "28 April 2008", + "launch_site": "SHAR Centre Sriharikota India", + "launch_vehicle": "PSLV- C9", + "orbit": "635 km, Polar Sun Synchronous", + "inclination": "97.94 deg", + "mission_life": "5 years" + }, + { + "name": "\n\n IMS-1\n \n", + "id": 41, + "orbit": "Polar Sun Synchronous", + "altitude": "635 km", + "mission_life": "2 years", + "physical_dimensions": "0.604x0.980x1.129 m", + "mass": "83 kg", + "power": "Two deployable sun pointing solar panels generating 220 W power, 105 Ah Lithium ion battery", + "telemetry,_tracking_and_command": "S-band", + "attitude_and_orbit_control_system": "Star Sensor, Miniature Sun Sensors, Magnetometers Gyros, Miniature Micro Reaction Wheels, Magnetic Torquers, single 1 N Hydrazine Thruster", + "data_handling": "S-band", + "data_storage": "16 Gb Solid State Recorder" + }, + { + "name": "\n\n Chandrayaan-1\n \n", + "id": 42, + "mission": "Remote Sensing, Planetary Science", + "weight": "1380 kg (Mass at lift off)", + "onboard_power": "700 Watts", + "stabilization": "3 - axis stabilised using reaction wheel and attitude control thrusters, sun sensors, star sensors, fibre optic gyros and accelerometers for attitude determination.", + "launch_date": "22 October 2008", + "launch_site": "SDSC, SHAR, Sriharikota", + "launch_vehicle": "PSLV - C11", + "orbit": "100 km x 100 km : Lunar Orbit", + "mission_life": "2 years" + }, + { + "name": "\n\n RISAT-2\n \n", + "id": 43, + "altitude": "550 km", + "inclination": "41 deg", + "orbit_period": "90 minutes", + "mass": "300 kg" + }, + { + "name": "\n\n Oceansat-2\n \n", + "id": 44, + "date": "Sept 23, 2009", + "launch_site": "SHAR, Sriharikota", + "launch_vehicle": "PSLV - C14", + "orbit": "Polar Sun Synchronous", + "altitude": "720 km", + "inclination": "98.28\u00b0", + "period": "99.31 minutes", + "local_time_of_eq._crossing": "12 noon \u00b1 10 minutes", + "repetitivity_cycle": "2 days", + "payloads": "OCM, SCAT and ROSA", + "mass_at_lift_off": "960 kg", + "power": "15 Sq.m Solar panels generating 1360W, Two 24 Ah Ni-Cd Batteries", + "mission_life": "5 years" + }, + { + "name": "\n\n CARTOSAT-2B\n \n", + "id": 45, + "mission": "Remote Sensing", + "weight": "694 kg (Mass at lift off)", + "onboard_orbit": "930 Watts", + "stabilization": "3 \u2013 axis body stabilised based on inputs from star sensors and gyros using Reaction wheels, Magnetic Torquers and Hydrazine Thrusters", + "payloads": "Panchromatic Camera", + "launch_date": "July 12, 2010", + "launch_site": "SHAR Centre Sriharikota India", + "launch_vehicle": "PSLV- C15", + "orbit": "630 kms, Polar Sun Synchronous", + "inclination": "97.71\u00ba" + }, + { + "name": "\n\n RESOURCESAT-2\n \n", + "id": 46, + "mission": "Remote Sensing", + "orbit": "Circular Polar Sun Synchronous", + "orbit_altitude_at_injection": "822 km + 20 km (3 Sigma)", + "orbit_inclination": "98.731\u00ba + 0.2\u00ba", + "lift-off_mass": "1206 kg", + "orbit_period": "101.35 min", + "number_of_orbits_per_day": "14", + "local_time_of_equator_crossing": "10:30 am", + "repetivity": "24 days", + "attitude_and_orbit_control": "3-axis body stabilised using Reaction Wheels, Magnetic Torquers and Hydrazine Thrusters", + "power": "Solar Array generating 1250 W at End Of Life, two 24 AH Ni-Cd batteries", + "launch_date": "April 20, 2011", + "launch_site": "SHAR Centre Sriharikota India", + "launch_vehicle": "PSLV- C16", + "mission_life": "5 years" + }, + { + "name": "\n\n Megha-Tropiques\n \n", + "id": 47, + "lift-off_mass": "1000 kg", + "orbit": "867 km with an inclination of 20 deg to the equator", + "thermal": "Passive system with IRS heritage", + "power": "1325 W (at End of Life) Two 24 AH NiCd batteries", + "ttc": "S-band", + "attitude_and_orbit_control": "3-axis stabilised with 4 Reaction Wheels, Gyros and Star sensors, Hydrazine based RCS", + "solid_state_recorder": "16 Gb", + "launch_date": "October 12, 2011", + "launch_site": "SDSC SHAR Centre, Sriharikota, India", + "launch_vehicle": "PSLV- C18" + }, + { + "name": "\n\n RISAT-1\n \n", + "id": 48, + "mass": "1858 kg", + "orbit": "Circular Polar Sun Synchronous", + "orbit_altitude": "536 km", + "orbit_inclination": "97.552 o", + "orbit_period": "95.49 min", + "number_of_orbits_per_day": "14", + "local_time_of_equator_crossing": "6:00 am / 6:00 pm", + "power": "Solar Array generating 2200 W and one 70 AH Ni-H2 battery", + "repetivity": "25 days", + "attitude_and_orbit_control": "3-axis body stabilised using Reaction Wheels, Magnetic Torquers and Hydrazine Thrusters", + "nominal_mission_life": "5 years", + "launch_date": "April 26, 2012", + "launch_site": "SDSC SHAR Centre, Sriharikota, India", + "launch_vehicle": "PSLV- C19" + }, + { + "name": "\n\n SARAL\n \n", + "id": 49, + "lift-off_mass": "407 kg", + "orbit": "781 km polar Sun synchronous", + "sensors": "4 PI sun sensors, magnetometer, star sensors and miniaturised gyro based Inertial Reference Unit", + "orbit_inclination": "98.538 o", + "local_time_of_equator": "18:00 hours crossing", + "power": "Solar Array generating 906 W and 46.8 Ampere-hour Lithium-ion battery", + "onboard_data_storage": "32 Gb", + "attitude_and_orbit_control": "3-axis stabilisation with reaction wheels, Hydrazine Control System based thrusters", + "mission_life": "5 years", + "launch_date": "Feb 25, 2013", + "launch_site": "SDSC SHAR Centre, Sriharikota, India", + "launch_vehicle": "PSLV - C20" + }, + { + "name": "\n\n IRNSS-1A\n \n", + "id": 50, + "lift-off_mass": "1425 kg", + "physical_dimensions": "1.58 metre x 1.50 metre x 1.50 metre", + "orbit": "Geosynchronous, at 55 deg East longitude with 29 deg inclination", + "power": "Two solar panels generating 1660 W, one lithium-ion battery of 90 Ampere-Hour capacity", + "propulsion": "440 Newton Liquid Apogee Motor, twelve 22 Newton Thrusters", + "control_system": "Zero momentum system, orientation input from Sun & star Sensors and Gyroscopes; Reaction Wheels, Magnetic Torquers and 22 Newton thrusters as actuators", + "mission_life": "10 years", + "launch_date": "Jul 01, 2013", + "launch_site": "SDSC SHAR Centre, Sriharikota, India", + "launch_vehicle": "PSLV - C22" + }, + { + "name": "\n\n INSAT-3D\n \n", + "id": 51, + "mission": "Meteorological and Search & Rescue Services", + "mass_at_lift-off": "2060 kg", + "power": "Solar panel generating 1164 W Two 18 Ah Ni-Cd batteries", + "physical_dimensions": "2.4m x 1.6m x 1.5m", + "propulsion": "440 Newton Liquid Apogee Motor (LAM) and twelve 22 Newton thrusters with Mono Methyl Hydrazine (MMH) as fuel and mixed Oxides of Nitrogen (MON-3) as oxidizer", + "stabilisation": "3-asix body stabilized in orbit using Sun Sensors, Star Sensors, gyroscopes, Momentum and Reaction Wheels, Magnetic Torquers and thrusters", + "antennae": "0.9m and 1.0m body mounted antennas", + "launch_date": "July 26, 2013", + "launch_site": "Kourou, French Guiana", + "launch_vehicle": "Ariane-5 VA-214", + "orbit": "Geostationary, 82 deg E Longitude", + "mission_life": "7 Years" + }, + { + "name": "\n\n IRNSS-1B\n \n", + "id": 52, + "off_mass": "1432 kg", + "physical_dimensions": "1.58 metre x 1.50 metre x 1.50 metre", + "orbit": "Geosynchronous, at 55 deg East longitude with 29 deg inclination", + "power": "Two solar panels generating 1660 W, one lithium-ion battery of 90 Ampere-Hour capacity", + "propulsion": "440 Newton Liquid Apogee Motor, twelve 22 Newton Thrusters", + "control_system": "Zero momentum system, orientation input from Sun & star Sensors and Gyroscopes; Reaction Wheels, Magnetic Torquers and 22 Newton thrusters as actuators", + "mission_life": "10 years", + "launch_date": "Apr 04, 2014", + "launch_site": "SDSC SHAR Centre, Sriharikota, India", + "launch_vehicle": "PSLV - C24" + }, + { + "name": "\n\n Cartosat-3\n \n", + "id": 53, + "mean________________________________________________________________altitude": "509 km", + "mean_inclination": "97.5\u00b0", + "overall_mass": "1625 kg", + "power_generation": "2000W", + "mission_life": "5 years" + }, + { + "name": "\n\n RISAT-2BR1\n \n", + "id": 54, + "lift-off_weight": "628 kg", + "altitude": "576 km", + "payload": "X-Band Radar", + "inclination": "37 deg", + "mission_life": "5 years" + } +] \ No newline at end of file diff --git a/isro_scrape/scraping.ipynb b/isro_scrape/scraping.ipynb index f82c177..2a13e2f 100644 --- a/isro_scrape/scraping.ipynb +++ b/isro_scrape/scraping.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 221, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -14,7 +14,7 @@ }, { "cell_type": "code", - "execution_count": 222, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -26,17 +26,51 @@ }, { "cell_type": "code", - "execution_count": 223, + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Collecting lxml\n", + " Downloading lxml-6.0.2-cp311-cp311-win_amd64.whl.metadata (3.7 kB)\n", + "Downloading lxml-6.0.2-cp311-cp311-win_amd64.whl (4.0 MB)\n", + " ---------------------------------------- 0.0/4.0 MB ? eta -:--:--\n", + " ----- ---------------------------------- 0.5/4.0 MB 5.6 MB/s eta 0:00:01\n", + " ------------------------------------ --- 3.7/4.0 MB 12.1 MB/s eta 0:00:01\n", + " ---------------------------------------- 4.0/4.0 MB 11.5 MB/s eta 0:00:00\n", + "Installing collected packages: lxml\n", + "Successfully installed lxml-6.0.2\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + "[notice] A new release of pip is available: 25.1.1 -> 26.0.1\n", + "[notice] To update, run: python.exe -m pip install --upgrade pip\n" + ] + } + ], + "source": [ + "!pip install lxml" + ] + }, + { + "cell_type": "code", + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ - "soup = BeautifulSoup(response.text,'lxml')\n", + "soup = BeautifulSoup(response.text,'html.parser')\n", "spacecrafts = soup.find_all(\"a\", {\"class\":\"out\"})\n" ] }, { "cell_type": "code", - "execution_count": 232, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -45,470 +79,487 @@ "text": [ "[\n", " {\n", - " \"name\": \"RISAT-2BR1\",\n", - " \"id\": 1,\n", - " \"lift-off_weight\": \"628 kg\",\n", - " \"altitude\": \"576 km\",\n", - " \"payload\": \"X-Band Radar\",\n", - " \"inclination\": \"37 deg\",\n", - " \"mission_life\": \"5 years\"\n", - " },\n", - " {\n", - " \"name\": \"Cartosat-3\",\n", + " \"name\": \"\\n\\n Aryabhata\\n \\n\",\n", " \"id\": 1,\n", - " \"mean________________________________________________________________altitude\": \"509 km\",\n", - " \"mean_inclination\": \"97.5\\u00b0\",\n", - " \"overall_mass\": \"1625 kg\",\n", - " \"power_generation\": \"2000W\",\n", - " \"mission_life\": \"5 years\"\n", + " \"mission\": \"Scientific/ Experimental\",\n", + " \"weight\": \"360 kg\",\n", + " \"on_board_power\": \"46 Watts\",\n", + " \"communication\": \"VHF band\",\n", + " \"stabilization\": \"Spinstabilize\",\n", + " \"payload\": \"X-ray Astronomy Aeronomy & Solar Physics\",\n", + " \"launch_date\": \"April 19, 1975\",\n", + " \"launch_site\": \"Volgograd Launch Station (presently in Russia)\",\n", + " \"launch_vehicle\": \"C-1 Intercosmos\",\n", + " \"orbit\": \"563 x 619 km\",\n", + " \"inclination\": \"50.7 deg\",\n", + " \"mission_life\": \"6 months(nominal), Spacecraft mainframe active till March,1981\",\n", + " \"orbital_life\": \"Nearly seventeen years (Re-entered on February 10,1992)\"\n", " },\n", " {\n", - " \"name\": \"GSAT-15\",\n", - " \"id\": 1,\n", - " \"mission\": \"Communication and Satellite Navigation\",\n", - " \"weight\": \"3164 kg (Mass at Lift \\u2013 off) 1440 kg (Dry Mass)\",\n", - " \"power\": \"Solar array providing 6200 Watts and Three 100 AH Lithium-Ion batteries\",\n", - " \"propulsion\": \"Bi- propellant System\",\n", - " \"launch____________________________________________________________date\": \"November 11, 2015\",\n", - " \"launch____________________________________________________________site\": \"Kourou, French Guiana\",\n", - " \"launch____________________________________________________________vehicle\": \"Ariane-5 VA-227\",\n", - " \"orbit\": \"Geostationary (93.5\\u00b0 East longitude) Co-located with INSAT-3A and INSAT-4B\",\n", - " \"mission____________________________________________________________life\": \"12 Years\"\n", + " \"name\": \"\\n\\n Bhaskara-I\\n \\n\",\n", + " \"id\": 2,\n", + " \"mission\": \"Experimental Remote Sensing\",\n", + " \"weight\": \"442 kg\",\n", + " \"onboard_power\": \"47 Watts\",\n", + " \"communication\": \"VHF band\",\n", + " \"stabilization\": \"Spin stabilized (spin axis controlled)\",\n", + " \"payload\": \"TVcameras, three band Microwave Radiometer (SAMIR)\",\n", + " \"launch_date\": \"Jun 07,1979\",\n", + " \"launch_site\": \"Volgograd Launch Station (presently in Russia)\",\n", + " \"launch_vehicle\": \"C-1Intercosmos\",\n", + " \"orbit\": \"519 x 541 km\",\n", + " \"inclination\": \"50.6 deg\",\n", + " \"mission_life\": \"One year (nominal)\",\n", + " \"orbital_life\": \"About 10 years ( Re-entered in 1989 )\"\n", " },\n", " {\n", - " \"name\": \"GSAT-6\",\n", - " \"id\": 1,\n", - " \"physical____________________________________________________________properties\": \"Lift off Mass : 2117 kg Main Structure : I-2K Overall size(m) : 2.1 x 2.5 x 4.1\",\n", - " \"power\": \"Generated power 3100 W\",\n", - " \"aocs\": \"Momentum biased 3-axis stabilised\",\n", - " \"antennas\": \"One 0.8 m (fixed) and one 6 m unfurlable antenna (transmit and receive)\",\n", - " \"communication____________________________________________________________payloads\": \"i. S-band payload with five spot beams covering India for user links ii. C-band payload with one beam covering India for hub links S-band payload uses 6 m unfurlable antenna and C-band uses 0.8 m antenna.\",\n", - " \"mission_life\": \"9 years\"\n", + " \"name\": \"\\n\\n Rohini Technology Payload\\n (RTP)\\n \\n\",\n", + " \"id\": 3,\n", + " \"mission\": \"Experimental\",\n", + " \"weight\": \"35 kg\",\n", + " \"onboard_power\": \"3 Watts\",\n", + " \"communication\": \"VHF band\",\n", + " \"stabilization\": \"Spin stabilized (spin axis controlled)\",\n", + " \"payload\": \"Launch vehicle monitoring instruments\",\n", + " \"launch_date\": \"August 10,1979\",\n", + " \"launch_site\": \"SHAR Centre, Sriharikota, India\",\n", + " \"launch_vehicle\": \"SLV-3\",\n", + " \"orbit\": \"Not achieved\"\n", " },\n", " {\n", - " \"name\": \"IRNSS-1B\",\n", - " \"id\": 1,\n", - " \"off_mass\": \"1432 kg\",\n", - " \"physical_dimensions\": \"1.58 metre x 1.50 metre x 1.50 metre\",\n", - " \"orbit\": \"Geosynchronous, at 55 deg East longitude with 29 deg inclination\",\n", - " \"power\": \"Two solar panels generating 1660 W, one lithium-ion battery of 90 Ampere-Hour capacity\",\n", - " \"propulsion\": \"440 Newton Liquid Apogee Motor, twelve 22 Newton Thrusters\",\n", - " \"control_system\": \"Zero momentum system, orientation input from Sun & star Sensors and Gyroscopes; Reaction Wheels, Magnetic Torquers and 22 Newton thrusters as actuators\",\n", - " \"mission_life\": \"10 years\",\n", - " \"launch_date\": \"Apr 04, 2014\",\n", - " \"launch_site\": \"SDSC SHAR Centre, Sriharikota, India\",\n", - " \"launch_vehicle\": \"PSLV - C24\"\n", + " \"name\": \"\\n\\n Rohini Satellite RS-1\\n \\n\",\n", + " \"id\": 4,\n", + " \"mission\": \"Experimental\",\n", + " \"weight\": \"35 kg\",\n", + " \"onboard_power\": \"16 Watts\",\n", + " \"communication\": \"VHF band\",\n", + " \"stabilization\": \"Spin stabilized\",\n", + " \"payload\": \"Launch vehicle monitoring instruments\",\n", + " \"launch_date\": \"July 18,1980\",\n", + " \"launch_site\": \"SHAR Centre, Sriharikota, India\",\n", + " \"launch_vehicle\": \"SLV-3\",\n", + " \"orbit\": \"305 x 919 km\",\n", + " \"inclination\": \"44.7 deg.\",\n", + " \"mission_life\": \"1.2 years\",\n", + " \"orbital_life\": \"20 months\"\n", " },\n", " {\n", - " \"name\": \"GSAT-14\",\n", - " \"id\": 1,\n", - " \"mass_at_lift-off\": \"1982 kg\",\n", - " \"overall_size_(m)\": \"2.0 X 2.0 X 3.6\",\n", - " \"power\": \"2600 W\",\n", - " \"attitude_and_orbit_control_system_(aocs)\": \"Momentum biased 3-axis stabilized mode\",\n", - " \"propulsion_system\": \"Bi propellant-Mono Methyl Hydrazine and Mixed Oxides of Nitrogen (MON-3)\",\n", - " \"antennae\": \"One 2m and one 2.2 m single shell shaped reflector Antennae (transmit and receive)\",\n", - " \"launch_date\": \"January 05, 2014\",\n", - " \"launch_site\": \"SDSC, SHAR\",\n", - " \"launch_vehicle\": \"GSLV-D5\",\n", - " \"orbit\": \"74 deg East longitude in geostationary orbit\",\n", - " \"mission_life\": \"12 Years\"\n", + " \"name\": \"\\n\\n Rohini Satellite RS-D1\\n \\n\",\n", + " \"id\": 5,\n", + " \"mission\": \"Experimental\",\n", + " \"weight\": \"38 kg\",\n", + " \"onboard_power\": \"16 Watts\",\n", + " \"communication\": \"VHF band\",\n", + " \"stabilization\": \"Spin stabilized\",\n", + " \"payload\": \"Landmark Tracker ( remote sensing payload)\",\n", + " \"launch_date\": \"May 31,1981\",\n", + " \"launch_site\": \"SHAR Centre, Sriharikota, India\",\n", + " \"launch_vehicle\": \"SLV-3\",\n", + " \"orbit\": \"186 x 418 km (achieved)\",\n", + " \"inclination\": \"46 deg\",\n", + " \"orbital_life\": \"Nine days\"\n", " },\n", " {\n", - " \"name\": \"GSAT-7\",\n", - " \"id\": 1,\n", - " \"mission\": \"Communication\",\n", - " \"mass_at_lift-off\": \"2650 kg\",\n", - " \"physical_dimensions\": \"3.1 m X 1.7 m X 2.0 m\",\n", - " \"power\": \"3,000 W (end of life)\",\n", - " \"satbilisation\": \"3-axis stabilized\",\n", - " \"launch_date\": \"August 30, 2013\",\n", - " \"launch_site\": \"Kourou, French Guiana\",\n", - " \"launch_vehicle\": \"Ariane-5 VA-215\",\n", - " \"orbit\": \"74oE Geo Stationary\",\n", - " \"mission_life\": \"> 7 Years\"\n", + " \"name\": \"\\n\\n APPLE\\n \\n\",\n", + " \"id\": 6,\n", + " \"mission\": \"Experimental geostationary communication\",\n", + " \"weight\": \"670 kg\",\n", + " \"onboard_power\": \"210 Watts\",\n", + " \"communication\": \"VHF and C-band\",\n", + " \"stabilization\": \"Three axis stabilized (biased momentum) with Momentum Wheels, Torquers & \\u00a0Hydrazine based Reaction control system\",\n", + " \"payload\": \"C - band transponders (Two)\",\n", + " \"launch_date\": \"June19,1981\",\n", + " \"launch_site\": \"Kourou (CSG), French Guyana\",\n", + " \"launch_vehicle\": \"Ariane -1(V-3)\",\n", + " \"orbit\": \"Geosynchronous (102 deg. E\\u00a0 longitude, over Indonesia)\",\n", + " \"inclination\": \"Near zero\",\n", + " \"mission_life\": \"Two years\"\n", " },\n", " {\n", - " \"name\": \"INSAT-3D\",\n", - " \"id\": 1,\n", - " \"mission\": \"Meteorological and Search & Rescue Services\",\n", - " \"mass_at_lift-off\": \"2060 kg\",\n", - " \"power\": \"Solar panel generating 1164 W Two 18 Ah Ni-Cd batteries\",\n", - " \"physical_dimensions\": \"2.4m x 1.6m x 1.5m\",\n", - " \"propulsion\": \"440 Newton Liquid Apogee Motor (LAM) and twelve 22 Newton thrusters with Mono Methyl Hydrazine (MMH) as fuel and mixed Oxides of Nitrogen (MON-3) as oxidizer\",\n", - " \"stabilisation\": \"3-asix body stabilized in orbit using Sun Sensors, Star Sensors, gyroscopes, Momentum and Reaction Wheels, Magnetic Torquers and thrusters\",\n", - " \"antennae\": \"0.9m and 1.0m body mounted antennas\",\n", - " \"launch_date\": \"July 26, 2013\",\n", - " \"launch_site\": \"Kourou, French Guiana\",\n", - " \"launch_vehicle\": \"Ariane-5 VA-214\",\n", - " \"orbit\": \"Geostationary, 82 deg E Longitude\",\n", - " \"mission_life\": \"7 Years\"\n", + " \"name\": \"\\n\\n Bhaskara-II\\n \\n\",\n", + " \"id\": 7,\n", + " \"mission\": \"Experimental Remote Sensing\",\n", + " \"weight\": \"444 kg\",\n", + " \"onboard_power\": \"47 Watts\",\n", + " \"communication\": \"VHF band\",\n", + " \"stabilization\": \"Spin stabilized (spin axis controlled)\",\n", + " \"payload\": \"TV cameras, three band Microwave Radiometer (SAMIR)\",\n", + " \"launch_date\": \"Nov 20, 1981\",\n", + " \"launch_site\": \"Volgograd Launch Station (presently in Russia)\",\n", + " \"launch_vehicle\": \"C-1 Intercosmos\",\n", + " \"orbit\": \"541 x 557 km\",\n", + " \"inclination\": \"50.7o\",\n", + " \"mission_life\": \"One year (nominal)\",\n", + " \"orbital_life\": \"About 10 years ( Re-entered in 1991 )\"\n", " },\n", " {\n", - " \"name\": \"IRNSS-1A\",\n", - " \"id\": 1,\n", - " \"lift-off_mass\": \"1425 kg\",\n", - " \"physical_dimensions\": \"1.58 metre x 1.50 metre x 1.50 metre\",\n", - " \"orbit\": \"Geosynchronous, at 55 deg East longitude with 29 deg inclination\",\n", - " \"power\": \"Two solar panels generating 1660 W, one lithium-ion battery of 90 Ampere-Hour capacity\",\n", - " \"propulsion\": \"440 Newton Liquid Apogee Motor, twelve 22 Newton Thrusters\",\n", - " \"control_system\": \"Zero momentum system, orientation input from Sun & star Sensors and Gyroscopes; Reaction Wheels, Magnetic Torquers and 22 Newton thrusters as actuators\",\n", - " \"mission_life\": \"10 years\",\n", - " \"launch_date\": \"Jul 01, 2013\",\n", - " \"launch_site\": \"SDSC SHAR Centre, Sriharikota, India\",\n", - " \"launch_vehicle\": \"PSLV - C22\"\n", + " \"name\": \"\\n\\n Rohini Satellite RS-D2\\n \\n\",\n", + " \"id\": 8,\n", + " \"mission\": \"Experimental\",\n", + " \"weight\": \"41.5 kg\",\n", + " \"onboard_power\": \"16 Watts\",\n", + " \"communication\": \"VHF band\",\n", + " \"stabilization\": \"Spin stabilized\",\n", + " \"payload\": \"Smart sensor (remote sensing payload), L-band beacon\",\n", + " \"launch_date\": \"April 17, 1983\",\n", + " \"launch_site\": \"SHAR Centre, Sriharikota, India\",\n", + " \"launch_vehicle\": \"SLV-3\",\n", + " \"orbit\": \"371 x 861 km\",\n", + " \"inclination\": \"46o\",\n", + " \"mission_life\": \"17 months\",\n", + " \"orbital_life\": \"Seven years (Re-entered on April 19, 1990)\"\n", " },\n", " {\n", - " \"name\": \"SARAL\",\n", - " \"id\": 1,\n", - " \"lift-off_mass\": \"407 kg\",\n", - " \"orbit\": \"781 km polar Sun synchronous\",\n", - " \"sensors\": \"4 PI sun sensors, magnetometer, star sensors and miniaturised gyro based Inertial Reference Unit\",\n", - " \"orbit_inclination\": \"98.538o\",\n", - " \"local_time_of_equator\": \"18:00 hours crossing\",\n", - " \"power\": \"Solar Array generating 906 W and 46.8 Ampere-hour Lithium-ion battery\",\n", - " \"onboard_data_storage\": \"32 Gb\",\n", - " \"attitude_and_orbit_control\": \"3-axis stabilisation with reaction wheels, Hydrazine Control System based thrusters\",\n", - " \"mission_life\": \"5 years\",\n", - " \"launch_date\": \"Feb 25, 2013\",\n", - " \"launch_site\": \"SDSC SHAR Centre, Sriharikota, India\",\n", - " \"launch_vehicle\": \"PSLV - C20\"\n", + " \"name\": \"\\n\\n SROSS-1\\n \\n\",\n", + " \"id\": 9,\n", + " \"mission\": \"Experimental\",\n", + " \"weight\": \"150 kg\",\n", + " \"onboard_power\": \"90 Watts\",\n", + " \"communication\": \"S-band and VHF\",\n", + " \"stabilization\": \"Three axis body stabilized (biased momentum) with a Momentum Wheel and Magnetic Torquer\",\n", + " \"propulsion_system\": \"Monopropellant (Hydrazine based) Reaction control system\",\n", + " \"payload\": \"Launch Vehicle Monitoring Platform(LVMP), Gamma Ray Burst (GRB) payload and Corner Cube Retro Reflector (CCRR) for laser tracking\",\n", + " \"launch_date\": \"March 24, 1987\",\n", + " \"launch_site\": \"SHAR Centre, Sriharikota, India\",\n", + " \"launch_vehicle\": \"Augmented Satellite Launch Vehicle (ASLV)\",\n", + " \"orbital_life\": \"Not realised\"\n", " },\n", " {\n", - " \"name\": \"GSAT-10\",\n", - " \"id\": 1,\n", - " \"mission\": \"Communication\",\n", - " \"weight\": \"3400 kg (Mass at Lift \\u2013 off) 1498 kg (Dry Mass)\",\n", - " \"power\": \"Solar array providing 6474 Watts (at Equinox) and two 128 AH Lithium-Ion batteries\",\n", - " \"physical_dimensions\": \"2.0 m X 1.77 m X 3.1 m cuboid\",\n", - " \"propulsion\": \"440 Newton Liquid Apogee Motors (LAM) with Mono Methyl Hydrazine (MMH) as fuel and Mixed oxides of Nitrogen (MON-3) as oxidizer for orbit raising.\",\n", - " \"stabilisation\": \"3-axis body stabilised in orbit using Earth Sensors, Sun Sensors, Momentum and Reaction Wheels, Magnetic Torquers and eight 10 Newton and eight 22 Newton bipropellant thrusters\",\n", - " \"antennae\": \"East : 2.2 m dia circular deployable Dual Gridded Reflector (DGR) West : 2.2 m X 2.4 m elliptical deployable DGR Earth Viewing Face (top) : 0.7 m parabolic, 0.9 m parabolic and 0.8 m X 0.8 m sixteen element helical antenna for GAGAN\",\n", - " \"launch_date\": \"September 29, 2012\",\n", - " \"launch_site\": \"Kourou, French Guiana\",\n", - " \"launch_vehicle\": \"Ariane-5 VA-209\",\n", - " \"orbit\": \"Geostationary (83\\u00b0 East longitude), co-located with INSAT-4A and GSAT-12\",\n", - " \"mission_life\": \"15 Years\"\n", + " \"name\": \"\\n\\n IRS-1A\\n \\n\",\n", + " \"id\": 10,\n", + " \"mission\": \"Operational Remote Sensing\",\n", + " \"weight\": \"975 kg\",\n", + " \"onboard_power\": \"600 Watts\",\n", + " \"communication\": \"S-band, X-band and VHF(commanding only)\",\n", + " \"stabilization\": \"Three axis body stabilized (zero momentum) with 4 Reactions Wheels, Magnetic torquers\",\n", + " \"rcs\": \"Monopropellant Hydrazine based with sixteen 1 Newton thrusters\",\n", + " \"payload\": \"Three solid state Push Broom Cameras: LISS-1(72.5 metre resolution), LISS-2A and LISS-2B (36.25 metre resolution)\",\n", + " \"launch_date\": \"March 17, 1988\",\n", + " \"launch_site\": \"Baikanur Cosmodrome Kazakhstan\",\n", + " \"launch_vehicle\": \"Vostok\",\n", + " \"orbit\": \"904 km Polar Sun-synchronous\",\n", + " \"inclination\": \"99.08o\",\n", + " \"repetivity\": \"22 days (307 orbits)\",\n", + " \"local_time\": \"10.30 a.m. (descending node)\",\n", + " \"mission_completed_during\": \"July 1996\"\n", " },\n", " {\n", - " \"name\": \"RISAT-1\",\n", - " \"id\": 1,\n", - " \"mass\": \"1858 kg\",\n", - " \"orbit\": \"Circular Polar Sun Synchronous\",\n", - " \"orbit_altitude\": \"536 km\",\n", - " \"orbit_inclination\": \"97.552o\",\n", - " \"orbit_period\": \"95.49 min\",\n", - " \"number_of_orbits_per_day\": \"14\",\n", - " \"local_time_of_equator_crossing\": \"6:00 am / 6:00 pm\",\n", - " \"power\": \"Solar Array generating 2200 W and one 70 AH Ni-H2 battery\",\n", - " \"repetivity\": \"25 days\",\n", - " \"attitude_and_orbit_control\": \"3-axis body stabilised using Reaction Wheels, Magnetic Torquers and Hydrazine Thrusters\",\n", - " \"nominal_mission_life\": \"5 years\",\n", - " \"launch_date\": \"April 26, 2012\",\n", - " \"launch_site\": \"SDSC SHAR Centre, Sriharikota, India\",\n", - " \"launch_vehicle\": \"PSLV- C19\"\n", + " \"name\": \"\\n\\n SROSS-2\\n \\n\",\n", + " \"id\": 11,\n", + " \"mission\": \"Experimental\",\n", + " \"weight\": \"150 kg\",\n", + " \"onboard_power\": \"90 Watts\",\n", + " \"communication\": \"S-band and VHF\",\n", + " \"stabilization\": \"Three axis body stabilized (biased momentum) with a Momentum Wheel and Magnetic Torquer\",\n", + " \"propulsion_system\": \"Monopropellant (Hydrazine based) Reaction Control System\",\n", + " \"payload\": \"Gamma Ray Burst (GRB) payload and Mono Payload Ocular Electro-Optic Stereo Scanner (MEOSS) built by DLR, Germany\",\n", + " \"launch_date\": \"July 13, 1988\",\n", + " \"launch_site\": \"SHAR Centre, Sriharikota, India\",\n", + " \"launch_vehicle\": \"Augmented Satellite Launch Vehicle (ASLV)\",\n", + " \"orbit\": \"Not realised\"\n", " },\n", " {\n", - " \"name\": \"Megha-Tropiques\",\n", - " \"id\": 1,\n", - " \"lift-off_mass\": \"1000 kg\",\n", - " \"orbit\": \"867 km with an inclination of 20 deg to the equator\",\n", - " \"thermal\": \"Passive system with IRS heritage\",\n", - " \"power\": \"1325 W (at End of Life) Two 24 AH NiCd batteries\",\n", - " \"ttc\": \"S-band\",\n", - " \"attitude_and_orbit_control\": \"3-axis stabilised with 4 Reaction Wheels, Gyros and Star sensors, Hydrazine based RCS\",\n", - " \"solid_state_recorder\": \"16 Gb\",\n", - " \"launch_date\": \"October 12, 2011\",\n", - " \"launch_site\": \"SDSC SHAR Centre, Sriharikota, India\",\n", - " \"launch_vehicle\": \"PSLV- C18\"\n", + " \"name\": \"\\n\\n IRS-1B\\n \\n\",\n", + " \"id\": 12,\n", + " \"mission\": \"Operational Remote Sensing\",\n", + " \"weight\": \"975 kg\",\n", + " \"onboard_power\": \"600 Watts\",\n", + " \"communication\": \"S-band, X-band and VHF (commanding only)\",\n", + " \"stabilization\": \"Three axis body stabilized (zero momentum) with 4 Reactions Wheels, Magnetic torquers\",\n", + " \"rcs\": \"Monopropellant Hydrazine based with sixteen 1 Newton thrusters\",\n", + " \"payload\": \"Three solid state Push Broom Cameras LlSS-1 (72.5 metre resolution), LlSS-2A and LlSS-2B (36.25 metre resolution)\",\n", + " \"launch_date\": \"August 29, 1991\",\n", + " \"launch_site\": \"Baikanur Cosmodrome Kazakhstan\",\n", + " \"launch_vehicle\": \"Vostok\",\n", + " \"orbit\": \"904 km Polar Sun Synchronous\",\n", + " \"inclination\": \"99.08o\",\n", + " \"repetivity\": \"22 days\",\n", + " \"local_time\": \"10.30 a.m. (descending node)\",\n", + " \"mission_completed_on\": \"December 20, 2003\"\n", " },\n", " {\n", - " \"name\": \"GSAT-12\",\n", - " \"id\": 1,\n", - " \"mission\": \"Communication\",\n", - " \"weight\": \"1410 kg (Mass at Lift \\u2013 off) 559 kg (Dry Mass)\",\n", - " \"power\": \"Solar array providing 1430 Watts and one 64 Ah Li-Ion batteries\",\n", - " \"physical_dimensions\": \"1.485 x 1.480 x 1.446 m cuboid\",\n", - " \"propulsion\": \"440 Newton Liquid Apogee Motors (LAM) with Mono Methyl Hydrazine (MMH) as fuel and Mixed oxides of Nitrogen (MON-3) as oxidizer for orbit raising.\",\n", - " \"attitude_orbit_control\": \"3-axis body stabilised in orbit using Earth Sensors, Sun Sensors, Momentum and Reaction Wheels, Magnetic Torquers and eight 10 Newton and eight 22 Newton bipropellant thrusters\",\n", - " \"antennae\": \"One 0.7 m diameter body mounted parabolic receive antenna and one 1.2 m diameter polarisation sensitive deployable antenna\",\n", - " \"launch_date\": \"July 15, 2011\",\n", - " \"launch_site\": \"SHAR, Sriharikota, India\",\n", - " \"launch_vehicle\": \"PSLV-C17\",\n", - " \"orbit\": \"Geosynchronous (83\\u00b0 longitude)\",\n", - " \"mission_life\": \"About 8 Years\"\n", + " \"name\": \"\\n\\n SROSS-C\\n \\n\",\n", + " \"id\": 13,\n", + " \"mission\": \"Experimental\",\n", + " \"weight\": \"106.1 kg\",\n", + " \"onboard_power\": \"45 Watts\",\n", + " \"communication\": \"S-band and VHF\",\n", + " \"stabilization\": \"Spin stabilized with a Magnetic Torquer and Magnetic Bias Control\",\n", + " \"payload\": \"Gamma Ray Burst (GRB) experiment & Retarding Potential Analyser (RPA) experiment\",\n", + " \"launch_date\": \"May 20,1992\",\n", + " \"launch_site\": \"SHAR Centre, Sriharikota, India\",\n", + " \"launch_vehicle\": \"Augmented Satellite Launch Vehicle (ASLV)\",\n", + " \"orbit\": \"267 x 391 km\",\n", + " \"mission_life\": \"Two months (Re-entered on July15,1992)\"\n", " },\n", " {\n", - " \"name\": \"GSAT-8\",\n", - " \"id\": 1,\n", - " \"mission\": \"Communication\",\n", - " \"weight\": \"3093 kg (Mass at Lift \\u2013 off) 1426 kg (Dry Mass)\",\n", - " \"power\": \"Solar array providing 6242 watts three 100 Ah Lithium Ion batteries\",\n", - " \"physical_dimensions\": \"2.0 x 1.77 x 3.1m cuboid\",\n", - " \"propulsion\": \"440 Newton Liquid Apogee Motors (LAM) with mono Methyl Hydrazine (MMH) as fuel and Mixed oxides of Nitrogen (MON-3) as oxidizer for orbit raising.\",\n", - " \"stabilisation\": \"3-axis body stabilised in orbit using Earth Sensors, Sun Sensors, Momentum and Reaction Wheels, Magnetic Torquers and eight 10 Newton and eight 22 Newton bipropellant thrusters\",\n", - " \"antennas\": \"Two indigenously developed 2.2 m diameter transmit/receive polarisation sensitive dual grid shaped beam deployable reflectors with offset-fed feeds illumination for Ku-band; 0.6 m C-band and 0.8x0.8 sq m L-band helix antenna for GAGAN\",\n", - " \"launch_date\": \"May 21, 2011\",\n", - " \"launch_site\": \"Kourou, French Guiana\",\n", - " \"launch_vehicle\": \"Ariane-5 VA-202\",\n", - " \"orbit\": \"Geosynchronous (55\\u00b0 E)\",\n", - " \"mission_life\": \"More Than 12 Years\"\n", + " \"name\": \"\\n\\n INSAT-2A\\n \\n\",\n", + " \"id\": 14,\n", + " \"mission\": \"Multipurpose Communication, meteorology and Satellite based search and rescue\",\n", + " \"weight\": \"1906 kg with propellant 916 kg dry weight\",\n", + " \"onboard_power\": \"One KW approx\",\n", + " \"communication\": \"C, extended C and S band\",\n", + " \"stabilization\": \"Three axis body stabilized with two Momentum Wheels & one Reaction Wheel, Magnetic torquers\",\n", + " \"propulsion\": \"Integrated bipropellant system (MMH and N2 04) With sixteen 22 N thrusters and 440 LAM.\",\n", + " \"payload\": \"Transponders: 12 C-band (for FSS),6 ext. C-band (for FSS) 2 S-band (for BSS),1Data relay transponder (for met.data), 1 transponder for research and rescue, Very High Resolution radiometer (VHRR) for\\u00a0meteorological observation with 2 km resolution in the visible and 8 km resolution in the IR band\",\n", + " \"launch_date\": \"July 10,1992\",\n", + " \"launch_site\": \"French Guyana\",\n", + " \"launch_vehicle\": \"Ariane 4\",\n", + " \"orbit\": \"Geostationary 74oE longitude\",\n", + " \"inclination\": \"0o\",\n", + " \"mission_life\": \"Seven years(nominal)\",\n", + " \"orbit_life\": \"Very Long\"\n", " },\n", " {\n", - " \"name\": \"RESOURCESAT-2\",\n", - " \"id\": 1,\n", - " \"mission\": \"Remote Sensing\",\n", - " \"orbit\": \"Circular Polar Sun Synchronous\",\n", - " \"orbit_altitude_at_injection\": \"822 km + 20 km (3 Sigma)\",\n", - " \"orbit_inclination\": \"98.731\\u00ba + 0.2\\u00ba\",\n", - " \"lift-off_mass\": \"1206 kg\",\n", - " \"orbit_period\": \"101.35 min\",\n", - " \"number_of_orbits_per_day\": \"14\",\n", - " \"local_time_of_equator_crossing\": \"10:30 am\",\n", - " \"repetivity\": \"24 days\",\n", - " \"attitude_and_orbit_control\": \"3-axis body stabilised using Reaction Wheels, Magnetic Torquers and Hydrazine Thrusters\",\n", - " \"power\": \"Solar Array generating 1250 W at End Of Life, two 24 AH Ni-Cd batteries\",\n", - " \"launch_date\": \"April 20, 2011\",\n", - " \"launch_site\": \"SHAR Centre Sriharikota India\",\n", - " \"launch_vehicle\": \"PSLV- C16\",\n", - " \"mission_life\": \"5 years\"\n", + " \"name\": \"\\n\\n INSAT-2B\\n \\n\",\n", + " \"id\": 15,\n", + " \"mission\": \"Multipurpose Communication, meteorology and Satellite based search and rescue\",\n", + " \"weight\": \"1906 kg with propellant 916 kg dry weight\",\n", + " \"onboard_power\": \"One KW approx.\",\n", + " \"communication\": \"C, extended C and S band\",\n", + " \"stabilization\": \"Three axis body stabilized with two Momentum Wheels & one Reaction Wheel, Magnetic torquers\",\n", + " \"propulsion\": \"Integrated bipropellant system ( MMH and N2 04) With sixteen 22 N thrusters and 440 N LAM.\",\n", + " \"payload\": \"Transponders: 12C-band (for FSS),6 ext. C-band (for FSS) 2S-band (for BSS),1Data relay transponder (for met.data), 1 transponder for research and rescue, Very High Resolution radiometer (VHRR) for meteorological observation with 2 km resolution in the visible and 8 km resolution in the IR band\",\n", + " \"launch_date\": \"July 23, 1993\",\n", + " \"launch_site\": \"French Guyana\",\n", + " \"launch_vehicle\": \"Ariane 4\",\n", + " \"orbit\": \"Geostationary 93.5o E\",\n", + " \"inclination\": \"0o\",\n", + " \"mission_life\": \"Seven years(nominal)\",\n", + " \"orbit_life\": \"Very Long\"\n", " },\n", " {\n", - " \"name\": \"YOUTHSAT\",\n", - " \"id\": 1,\n", - " \"lift-off_mass\": \"92 kg\",\n", - " \"orbit_period\": \"101.35 min\",\n", - " \"dimension\": \"1020 (Pitch) x 604 (Roll) x 1340 (Yaw) mm3\",\n", - " \"attitude_and_orbit_control\": \"3-axis body stabilised using Sun and Star Sensors, Miniature Magnetometer, Miniature Gyros, Micro Reaction Wheels and Magnetic Torquers\",\n", - " \"power\": \"Solar Array generating 230 W, one 10.5 AH Li-ion battery\",\n", - " \"mechanisms\": \"Paraffin Actuator based Solar Panel Hold Down and Release Mechanism\",\n", - " \"launch_date\": \"April 20, 2011\",\n", - " \"launch_site\": \"SHAR Centre Sriharikota India\",\n", - " \"launch_vehicle\": \"PSLV- C16\",\n", - " \"orbit\": \"Circular Polar Sun Synchronous\",\n", - " \"orbit_altitude_at_injection\": \"822 km\\u00a0+\\u00a020 km (3 Sigma)\",\n", - " \"orbit_inclination\": \"98.731 \\u00ba\\u00a0+\\u00a00.2 \\u00ba\",\n", - " \"mission_life\": \"2 years\"\n", + " \"name\": \"\\n\\n IRS-1E\\n \\n\",\n", + " \"id\": 16,\n", + " \"mission\": \"Operational Remote Sensing\",\n", + " \"weight\": \"846 kg\",\n", + " \"onboard_power\": \"415 Watts\",\n", + " \"communication\": \"S-band (TIC) & VHF\",\n", + " \"stabilization\": \"Three axis body stabilized ( zero momentum) with 4 Reaction Wheels, Magnetic torquers\",\n", + " \"rcs\": \"Monopropellant Hydrazine based RCS with 1 Newton thrusters ( 16 Nos.)\",\n", + " \"payload\": \"LlSS-1 MEOSS (Mono-ocula Erlectro Optic Stereo Scanner)\",\n", + " \"launch_date\": \"September 20, 1993\",\n", + " \"launch_site\": \"SHAR Centre, Sriharikota, India\",\n", + " \"launch_vehicle\": \"PSLV-D1\",\n", + " \"orbit\": \"Not realised\"\n", " },\n", " {\n", - " \"name\": \"CARTOSAT-2B\",\n", - " \"id\": 1,\n", - " \"mission\": \"Remote Sensing\",\n", - " \"weight\": \"694 kg (Mass at lift off)\",\n", - " \"onboard_orbit\": \"930 Watts\",\n", - " \"stabilization\": \"3 \\u2013 axis body stabilised based on inputs from star sensors and gyros using Reaction wheels, Magnetic Torquers and Hydrazine Thrusters\",\n", - " \"payloads\": \"Panchromatic Camera\",\n", - " \"launch_date\": \"July 12, 2010\",\n", - " \"launch_site\": \"SHAR Centre Sriharikota India\",\n", - " \"launch_vehicle\": \"PSLV- C15\",\n", - " \"orbit\": \"630 kms, Polar Sun Synchronous\",\n", - " \"inclination\": \"97.71\\u00ba\"\n", + " \"name\": \"\\n\\n SROSS-C2\\n \\n\",\n", + " \"id\": 17,\n", + " \"mission\": \"Experimental\",\n", + " \"weight\": \"115 kg\",\n", + " \"onboard_power\": \"45 Watts\",\n", + " \"communication\": \"S-band and VHF\",\n", + " \"rcs\": \"Monopropellant Hydrazine based with six 1 Newton thrusters\",\n", + " \"payload\": \"Gamma Ray Burst (GRB) & Retarding Potential Analyser (RPA)\",\n", + " \"launch_date\": \"May 04,1994\",\n", + " \"launch_site\": \"SHAR Centre,Sriharikota,India\",\n", + " \"launch_vehicle\": \"Augmented Satellite Launch Vehicle (ASLV)\",\n", + " \"orbit\": \"430 x 600 km.\",\n", + " \"inclination\": \"45 deg.\",\n", + " \"mission_life\": \"Six months (nominal)\",\n", + " \"orbital_life\": \"Two years (nominal)\"\n", " },\n", " {\n", - " \"name\": \"Oceansat-2\",\n", - " \"id\": 1,\n", - " \"date\": \"Sept 23, 2009\",\n", - " \"launch_site\": \"SHAR, Sriharikota\",\n", - " \"launch_vehicle\": \"PSLV - C14\",\n", - " \"orbit\": \"Polar Sun Synchronous\",\n", - " \"altitude\": \"720 km\",\n", - " \"inclination\": \"98.28\\u00b0\",\n", - " \"period\": \"99.31 minutes\",\n", - " \"local_time_of_eq._crossing\": \"12 noon \\u00b1 10 minutes\",\n", - " \"repetitivity_cycle\": \"2 days\",\n", - " \"payloads\": \"OCM, SCAT and ROSA\",\n", - " \"mass_at_lift_off\": \"960 kg\",\n", - " \"power\": \"15 Sq.m Solar panels generating 1360W, Two 24 Ah Ni-Cd Batteries\",\n", - " \"mission_life\": \"5 years\"\n", + " \"name\": \"\\n\\n IRS-P2\\n \\n\",\n", + " \"id\": 18,\n", + " \"mission\": \"Operational Remote Sensing\",\n", + " \"weight\": \"804 kg\",\n", + " \"onboard_power\": \"510 Watts\",\n", + " \"communication\": \"S-band, X-band\",\n", + " \"stabilization\": \"Three axis body stabilized with 4 Reaction Wheels, Magnetic torquers\",\n", + " \"rcs\": \"4 tanks containing Monopropellant Hydrazine based with sixteen 1 N thrusters and one 11 N thruster\",\n", + " \"payload\": \"Two solid state Push Broom Cameras operating in four spectral bands in the visible and near-IR range using CCD arrays: LlSS-2A & LlSS-2B (Resolution: 32.74 metre)\",\n", + " \"launch_date\": \"October 15, 1994\",\n", + " \"launch_site\": \"SHAR Centre, Sriharikota, India\",\n", + " \"launch_vehicle\": \"PSLV-D2\",\n", + " \"inclination\": \"98.68 o\",\n", + " \"repetivity\": \"24 days\",\n", + " \"mission_completed_on\": \"1997\"\n", " },\n", " {\n", - " \"name\": \"RISAT-2\",\n", - " \"id\": 1,\n", - " \"altitude\": \"550 km\",\n", - " \"inclination\": \"41 deg\",\n", - " \"orbit_period\": \"90 minutes\",\n", - " \"mass\": \"300 kg\"\n", + " \"name\": \"\\n\\n INSAT-2C\\n \\n\",\n", + " \"id\": 19,\n", + " \"mission\": \"Communication\",\n", + " \"weight\": \"2106 kg with propellants 946 kg dry weight\",\n", + " \"onboard_power\": \"1320 Watts\",\n", + " \"communication\": \"C extended C, S and Ku bands\",\n", + " \"stabilization\": \"Three axis stabilized with two Momen'tum Wheels & one Reaction Wheel, Magnetic torquers\",\n", + " \"propulsion\": \"Integrated bipropellant system ( MMH and N2 04) With sixteen 22N thrusters and 440N LAM.\",\n", + " \"payload\": \"Transponders: 16C-band / extended C-band transponders (for FSS), 2 high power C-band transponders (for BSS), 1S-band transponder (for BSS),1C/S-band mobile communication transponder, 3 Ku-band transponders\",\n", + " \"launch_date\": \"December 7, 1995\",\n", + " \"launch_site\": \"French Guyana\",\n", + " \"launch_vehicle\": \"Ariane4\",\n", + " \"orbit\": \"Geostationary 93.5 deg E\",\n", + " \"inclination\": \"0 deg.\",\n", + " \"mission_life\": \"Seven years(nominal)\",\n", + " \"orbit_life\": \"Very Long\"\n", " },\n", " {\n", - " \"name\": \"Chandrayaan-1 \",\n", - " \"id\": 1,\n", - " \"mission\": \"Remote Sensing, Planetary Science\",\n", - " \"weight\": \"1380 kg (Mass at lift off)\",\n", - " \"onboard_power\": \"700 Watts\",\n", - " \"stabilization\": \"3 - axis stabilised using reaction wheel and attitude control thrusters, sun sensors, star sensors, fibre optic gyros and accelerometers for attitude determination.\",\n", - " \"launch_date\": \"22 October 2008\",\n", - " \"launch_site\": \"SDSC, SHAR, Sriharikota\",\n", - " \"launch_vehicle\": \"PSLV - C11\",\n", - " \"orbit\": \"100 km x 100 km : Lunar Orbit\",\n", - " \"mission_life\": \"2 years\"\n", + " \"name\": \"\\n\\n IRS-1C\\n \\n\",\n", + " \"id\": 20,\n", + " \"mission\": \"Operational Remote Sensing\",\n", + " \"weight\": \"1250 kg\",\n", + " \"onboard_power\": \"809 Watts (generated by 9.6 sq.metres Solar Panels)\",\n", + " \"communication\": \"S-band, X-band\",\n", + " \"stabilization\": \"Three axis body stabilized (zero momentum) with 4 Reaction Wheels, Magnetic torquer\",\n", + " \"rcs\": \"Monopropellant Hydrazine based with sixteen 1 N thrusters & one 11N thrusters\",\n", + " \"payload\": \"Three solid state Push Broom Cameras: PAN (<6 metre solution )LlSS-3(23.6 metre resolution) and WiFS (189 metre resolution)\",\n", + " \"onboard_tape_recorder\": \"Storage Capacity : 62 G bits\",\n", + " \"launch_date\": \"December 28, 1995\",\n", + " \"launch_site\": \"Baikanur Cosmodrome Kazakhstan\",\n", + " \"launch_vehicle\": \"Molniya\",\n", + " \"orbit\": \"817 km Polar Sun-synchronous\",\n", + " \"inclination\": \"98.69o\",\n", + " \"repetivity\": \"24 days\",\n", + " \"local_time\": \"10.30 a.m\",\n", + " \"mission_completed_on\": \"September 21, 2007\"\n", " },\n", " {\n", - " \"name\": \"IMS-1\",\n", - " \"id\": 1,\n", - " \"orbit\": \"Polar Sun Synchronous\",\n", - " \"altitude\": \"635 km\",\n", - " \"mission_life\": \"2 years\",\n", - " \"physical_dimensions\": \"0.604x0.980x1.129 m\",\n", - " \"mass\": \"83 kg\",\n", - " \"power\": \"Two deployable sun pointing solar panels generating 220 W power, 105 Ah Lithium ion battery\",\n", - " \"telemetry,_tracking_and_command\": \"S-band\",\n", - " \"attitude_and_orbit_control_system\": \"Star Sensor, Miniature Sun Sensors, Magnetometers Gyros, Miniature Micro Reaction Wheels, Magnetic Torquers, single 1 N Hydrazine Thruster\",\n", - " \"data_handling\": \"S-band\",\n", - " \"data_storage\": \"16 Gb Solid State Recorder\"\n", + " \"name\": \"\\n\\n IRS-P3\\n \\n\",\n", + " \"id\": 21,\n", + " \"mission\": \"Remote sensing of earth's natural resources. Study of X-ray Astronomy. Periodic calibration of PSLV tracking radar located at tracking stations.\",\n", + " \"weight\": \"920 kg\",\n", + " \"onboard_power\": \"817 Watts\",\n", + " \"communication\": \"S-band\",\n", + " \"stabilization\": \"Three axis body stabilized\",\n", + " \"rcs\": \"Combinations of bladder type and surface tension type mass expulsion monopropellant hydrazine system\",\n", + " \"payload\": \"WideField Sensor (WiFS), Modular Opto - electronic Scanner (MOS), Indian X-ray Astronomy Experiment (IXAE), C-band transponder(CBT)\",\n", + " \"launch_date\": \"March 21, 1996\",\n", + " \"launch_site\": \"SHAR Centre, Sriharikota, India\",\n", + " \"launch_vehicle\": \"PSLV-D3\",\n", + " \"orbit\": \"817 km. Circular polar sun-synchronous with equatorial crossing at 10.30 am (descending node)\",\n", + " \"inclination\": \"98.68o\",\n", + " \"repetivity\": \"WiFS : 5 days\",\n", + " \"mission_completed_during\": \"January 2006\"\n", " },\n", " {\n", - " \"name\": \"CARTOSAT \\u2013\\n 2A\",\n", - " \"id\": 1,\n", - " \"mission\": \"Remote Sensing\",\n", - " \"weight\": \"690 Kg (Mass at lift off)\",\n", - " \"onboard_power\": \"900 Watts\",\n", - " \"stabilization\": \"3 \\u2013 axis body stabilised using high torque reaction wheels, magnetic torquers and hydrogen thrusters\",\n", - " \"payloads\": \"Panchromatic Camera\",\n", - " \"launch_date\": \"28 April 2008\",\n", - " \"launch_site\": \"SHAR Centre Sriharikota India\",\n", - " \"launch_vehicle\": \"PSLV- C9\",\n", - " \"orbit\": \"635 km, Polar Sun Synchronous\",\n", - " \"inclination\": \"97.94 deg\",\n", - " \"mission_life\": \"5 years\"\n", + " \"name\": \"\\n\\n INSAT-2D\\n \\n\",\n", + " \"id\": 22,\n", + " \"mission\": \"Communication\",\n", + " \"weight\": \"2079 kg with propellants, 995 kg dry weight\",\n", + " \"onboard_power\": \"1650 Watts\",\n", + " \"communication\": \"C, extended C, S and Ku bands\",\n", + " \"stabilization\": \"Three axis stabilized with two Momentum Wheels & one Reaction Wheel, Magnetic torquers\",\n", + " \"propulsion\": \"Integrated bipropellan stystem ( MMH and N2 04) With sixteen 22N thrusters and 440N LAM.\",\n", + " \"payload\": \"Transponders: 16C-band / extended C-band transponders (forFSS), 2 high power C-band transponders (for BSS), 1S-band transponder (for BSS),1C/S-band mobile communication transponder, 3 Ku-band transponders\",\n", + " \"launch_date\": \"June 4, 1997\",\n", + " \"launch_site\": \"French Guyana\",\n", + " \"launch_vehicle\": \"Arianev 4\",\n", + " \"orbit\": \"Geostationary 93,.5deg.E\",\n", + " \"inclination\": \"0 deg.\"\n", " },\n", " {\n", - " \"name\": \"INSAT-4CR\",\n", - " \"id\": 1,\n", - " \"mission\": \"Communication\",\n", - " \"weight\": \"2,130 kg (Mass at Lift \\u2013 off)\",\n", - " \"onboard_power\": \"3000 W\",\n", - " \"communication_payload\": \"12 Ku-band transponders employing 140 W Traveling Wave Tube Amplifiers (TWTA) Ku-band Beacon\",\n", - " \"launch_date\": \"September 2, 2007\",\n", - " \"launch_site\": \"SHAR, Sriharikota, India\",\n", - " \"launch_vehicle\": \"GSLV-F04\",\n", - " \"orbit\": \"Geosynchronous (74\\u00b0 E)\",\n", - " \"mission_life\": \"12 Years\"\n", + " \"name\": \"\\n\\n IRS-1D\\n \\n\",\n", + " \"id\": 23,\n", + " \"mission\": \"Operational Remote Sensing\",\n", + " \"weight\": \"1250 kg\",\n", + " \"onboard_power\": \"809 Watts (generated by 9.6 sq.metres Solar Panels)\",\n", + " \"communication\": \"S-band, X-band\",\n", + " \"stabilization\": \"Three axis body stabilized (zero momentum) with 4 Reaction Wheels, Magnetic torquer\",\n", + " \"rcs\": \"Monopropellant Hydrazine based with sixteen 1 N thrusters & one 11N thrusters\",\n", + " \"payload\": \"Three solid state Push Broom Cameras: PAN (<6 metre solution )LlSS-3(23.6 metre resolution) and WiFS (189 metre resolution)\",\n", + " \"onboard_tape_recorder\": \"Storage Capacity : 62 G bits\",\n", + " \"launch_date\": \"December 28, 1995\",\n", + " \"launch_site\": \"Baikanur Cosmodrome Kazakhstan\",\n", + " \"launch_vehicle\": \"Molniya\",\n", + " \"orbit\": \"817 km Polar Sun-synchronous\",\n", + " \"inclination\": \"98.69 o\",\n", + " \"repetivity\": \"24 days\",\n", + " \"local_time\": \"10.30 a.m\",\n", + " \"mission_completed_on\": \"September 21, 2007\"\n", " },\n", " {\n", - " \"name\": \"INSAT-4B\",\n", - " \"id\": 1,\n", - " \"mission\": \"Communication\",\n", - " \"weight\": \"3025 kg (at Lift \\u2013 off)\",\n", - " \"onboard_power\": \"5859 W\",\n", - " \"stabilization\": \"It uses 3 earth sensors, 2 digital sun sensors, 8 coarse analog sun sensors, 3 solar panel sun sensors and one sensor processing electronics. The wheels and wheel drive electronics were imported with indigenous wheel interface module to interface the wheel drive electronics and AOCE.\",\n", - " \"propulsion\": \"The propulsion system is employing 16 thrusters, 4 each located on east, west and AY sides and 2 each on north and south sides. There is one 440 N liquid apogee motor (using Mono Methyl Hydrazine (MMH) as fuel and oxides of Nitrogen (MON3 as oxidizer) and three pressurant tanks mounted on the LAM deck.\",\n", - " \"payload\": \"12 Ku band high power transponders covering Indian main land using 140W radiatively cooled TWTAs.\",\n", - " \"launch_date\": \"March 12, 2007\",\n", - " \"launch_site\": \"French Guiana\",\n", - " \"launch_vehicle\": \"Ariane5\",\n", - " \"orbit\": \"Geostationary (93.5o E Longitude)\",\n", - " \"mission_life\": \"12 Years\"\n", + " \"name\": \"\\n\\n INSAT-2E\\n \\n\",\n", + " \"id\": 24,\n", + " \"mission\": \"Communication and Meteorology\",\n", + " \"spacecraft_mass\": \"2,550 kg (Mass at Lift-off) 1150 kg (Dry mass)\",\n", + " \"launch_date\": \"03 April 1999\",\n", + " \"launch_site\": \"French Guyana\",\n", + " \"launch_vehicle\": \"Ariane \\u2013 42P\",\n", + " \"orbit\": \"Geosynchronous (83 deg east longitude)\"\n", " },\n", " {\n", - " \"name\": \"CARTOSAT-2\",\n", - " \"id\": 1,\n", - " \"mission\": \"Remote Sensing\",\n", - " \"weight\": \"650 Kg\",\n", - " \"onboard_orbit\": \"900 Watts\",\n", - " \"stabilization\": \"3 - axis body stabilised using high torque reaction wheels, magnetic torquers and thrusters\",\n", - " \"payloads\": \"Panchromatic Camera\",\n", - " \"launch_date\": \"10 January 2007\",\n", - " \"launch_site\": \"SHAR Centre Sriharikota India\",\n", - " \"launch_vehicle\": \"PSLV- C7\",\n", + " \"name\": \"\\n\\n Oceansat(IRS-P4)\\n \\n\",\n", + " \"id\": 25,\n", + " \"launch_date\": \"May 26, 1999\",\n", + " \"launch_site\": \"SHAR, Sriharikota\",\n", + " \"launch_vehicle\": \"PSLV - C2\",\n", " \"orbit\": \"Polar Sun Synchronous\",\n", - " \"mission_life\": \"5 years\"\n", + " \"altitude\": \"720 km\",\n", + " \"inclination\": \"98.28 deg\",\n", + " \"period\": \"99.31 min\",\n", + " \"local_time_of_eq._crossing\": \"12 noon\",\n", + " \"repetitivity_cycle\": \"2 days\",\n", + " \"size\": \"2.8m x 1.98m x 2.57m\",\n", + " \"mass_at_lift_off\": \"1050 kg\",\n", + " \"length_when_fully_deployed\": \"11.67 m\",\n", + " \"attitude_and_orbit_control\": \"3-axis body-stabilised using Reaction Wheels, Magnetic Torquers and Hydrazine Thrusters\",\n", + " \"power\": \"9.6 Sq.m Solar Array generating 750w Two 21 Ah Ni-Cd Batteries\",\n", + " \"mission_completed_on\": \"August 8, 2010\"\n", " },\n", " {\n", - " \"name\": \"INSAT-4A\",\n", - " \"id\": 1,\n", - " \"spacecraft_mass\": \"Lift off 3081 Kg Dry Mass 1386.55 Kg\",\n", - " \"orbit\": \"Geostationary ( 83o E)\",\n", - " \"power\": \"Solar Array to provide a power of 5922 W\",\n", - " \"battery\": \"Three 70 Ah Ni H2 Batteries for eclipse support of 4264 W\",\n", - " \"life\": \"12 Years\",\n", - " \"launch_date\": \"December 22, 2005\",\n", - " \"launch_vehicle\": \"ARIANE5-V169\"\n", + " \"name\": \"\\n\\n INSAT-3B\\n \\n\",\n", + " \"id\": 26,\n", + " \"mission\": \"Very long\",\n", + " \"spacecraft_mass\": \"2,070 (Mass at Lift \\u2013 off) 970 kg (Dry mass)\",\n", + " \"onboard_power\": \"1,712 W\",\n", + " \"stabilization\": \"3 \\u2013 axis body stabilised biased momentum control system using earth sensors, sun sensors, inertial reference unit, momentum / reaction wheels, magnetic torquers and unified bi-propellant thrusters.\",\n", + " \"propulsion\": \"Liquid Apogee Motor with fuel and oxidizer stored in separate titanium tanks and pressurant in Kevlar wound titanium tank.\",\n", + " \"payload\": \"12 extended C \\u2013 band Transponders Five Ku band Transponders Mobile Satellite Services (MSS)\",\n", + " \"launch_date\": \"22nd March 2000\",\n", + " \"launch_site\": \"French Guyana\",\n", + " \"launch_vehicle\": \"Ariane -5\",\n", + " \"orbit\": \"Geostationary (83 deg East longitude)\",\n", + " \"inclination\": \"7 deg\"\n", " },\n", " {\n", - " \"name\": \"CARTOSAT-1\",\n", - " \"id\": 1,\n", - " \"launch_date\": \"5 May 2005\",\n", + " \"name\": \"\\n PSLV-C3 / TES\\n \",\n", + " \"id\": 27,\n", + " \"launch_date\": \"22 October 2001\",\n", " \"launch_site\": \"SHAR Centre Sriharikota India\",\n", - " \"launch_vehicle\": \"PSLV- C6\",\n", - " \"orbit\": \"618 km Polar Sun Synchronous\",\n", - " \"payloads\": \"PAN FORE, PAN - AFT\",\n", - " \"orbit_period\": \"97 min\",\n", - " \"number_of_orbits_per_day\": \"14\",\n", - " \"local_time_of_equator_crossing\": \"10:30 am\",\n", - " \"repetivity\": \"126 days\",\n", - " \"revisit\": \"5 days\",\n", - " \"lift-off_mass\": \"1560 kg\",\n", - " \"attitude_and_orbit_control\": \"3-axis body stabillised using reaction wheels, Magnetic Torquers and Hydrazine Thrusters\",\n", - " \"electrical_power\": \"15 sqm Solar Array generating 1100w, Two 24 Ah Ni-Cd batteries\",\n", - " \"mission_life\": \"5 years\"\n", - " },\n", - " {\n", - " \"name\": \"HAMSAT\",\n", - " \"id\": 1,\n", - " \"launch_date\": \"May 5, 2005\",\n", - " \"launch_site\": \"SHAR Centre, Sriharikota, India\",\n", - " \"launch_vehicle\": \"PSLV-C6\",\n", - " \"orbit\": \"Geo-synchronous, 633.355 km (average)\",\n", - " \"payloads\": \"2 Transponders\"\n", - " },\n", - " {\n", - " \"name\": \"EDUSAT\",\n", - " \"id\": 1,\n", - " \"mission\": \"Education\",\n", - " \"spacecraft_mass\": \"1950.5 kg mass (at Lift - off) 819.4 kg (Dry mass)\",\n", - " \"onboard_power\": \"Total four solar panel of size 2.54 M x 1.525 M generating 2040 W (EOL), two 24 AH NiCd batteries for eclipse support\",\n", - " \"stabilization\": \"3 axis body stabilised in orbit using sensors, momentum and reaction wheels, magnetic torquers and eight 10 N & 22N reaction control thrusters.\",\n", - " \"propulsion\": \"440 N Liquid Apogee Motor with MON - 3 and MMH for orbit raising\",\n", - " \"payload\": \"Six upper extended C - band transponders Five lower Ku band transponders with regional beam coverage One lower Ku band National beam transponder with Indian main land coverage Ku beacon 12 C band high power transponders with extended coverage, covering southeast and northwest region apart from Indian main land using 63 W LTWTAs\",\n", - " \"launch_date\": \"September 20, 2004\",\n", - " \"launch_site\": \"SHAR, Sriharikota, India\",\n", - " \"launch_vehicle\": \"GSLV-F01\",\n", - " \"orbit\": \"Geostationary (74oE longitude)\",\n", - " \"mission_life\": \"7 Years (minimum)\"\n", + " \"launch_vehicle\": \"PSLV- C3\",\n", + " \"orbit\": \"572 km Sun Synchronous\",\n", + " \"payloads\": \"PAN\"\n", " },\n", " {\n", - " \"name\": \"IRS-P6 / RESOURCESAT-1\",\n", - " \"id\": 1,\n", - " \"launch_date\": \"October 17, 2003\",\n", - " \"launch_site\": \"SHAR, Sriharikota\",\n", - " \"launch_vehicle\": \"PSLV-C5\",\n", - " \"payloads\": \"LISS-4, LISS-3, AWiFS-A, AWiFS-B\",\n", - " \"orbit\": \"Polar Sun Synchronous\",\n", - " \"orbit_height\": \"817 km\",\n", - " \"orbit_inclination\": \"98.7o\",\n", - " \"orbit_period\": \"101.35 min\",\n", - " \"number_of_orbits_per_day\": \"14\",\n", - " \"local_time_of_equator_crossing\": \"10:30 am\",\n", - " \"repetivity_(liss-3)\": \"24 days\",\n", - " \"revisit\": \"5 days\",\n", - " \"lift-off_mass\": \"1360 kg\",\n", - " \"attitude_and_orbit_control\": \"3-axis body stabilised using Reaction Wheels, Magnetic Torquers and Hydrazine Thrusters\",\n", - " \"power\": \"Solar Array generating 1250 W, Two 24 Ah Ni-Cd batteries\",\n", - " \"mission_life\": \"5 years\"\n", + " \"name\": \"\\n\\n The Technology Experiment Satellite\\n (TES)\\n \\n\",\n", + " \"id\": 28,\n", + " \"launch_date\": \"22 October 2001\",\n", + " \"launch_site\": \"SHAR Centre Sriharikota India\",\n", + " \"launch_vehicle\": \"PSLV- C3\",\n", + " \"orbit\": \"572 km Sun Synchronous\",\n", + " \"payloads\": \"PAN\"\n", " },\n", " {\n", - " \"name\": \"INSAT-3E\",\n", - " \"id\": 1,\n", - " \"mission\": \"Communication\",\n", - " \"spacecraft_mass\": \"2,775 kg (Mass at Lift-off) 1218 kg (Dry mass)\",\n", - " \"launch_date\": \"September 28, 2003\",\n", + " \"name\": \"\\n\\n INSAT-3C\\n \\n\",\n", + " \"id\": 29,\n", + " \"mission\": \"Communication, broadcasting and Meteorology\",\n", + " \"spacecraft_mass\": \"2,650 kg (Mass at Lift - off) 1218 kg (Dry mass)\",\n", + " \"onboard_power\": \"2765 W\",\n", + " \"propulsion\": \"Liquid Apogee Motor with fuel and oxidizer stored in separate titanium tanks and pressurant in Kevlar wound titanium tank.\",\n", + " \"payload\": \"24 C band transponders 6 Extended C - band Transponders 2 S - band Transponders\",\n", + " \"launch_date\": \"January 24, 2002\",\n", " \"launch_site\": \"French Guyana\",\n", - " \"launch_vehicle\": \"Ariane5-V162\",\n", - " \"orbit\": \"Geostationary Orbit\"\n", + " \"launch_vehicle\": \"Ariane5-V147\",\n", + " \"orbit\": \"Geostationary (74o longitude)\",\n", + " \"mission_life\": \"Very long\"\n", " },\n", " {\n", - " \"name\": \"GSAT-2\",\n", - " \"id\": 1,\n", - " \"mission\": \"Communication\",\n", - " \"weight\": \"1800 kg\",\n", - " \"launch_date\": \"May 8, 2003\",\n", - " \"launch_site\": \"SHAR, Sriharikota, India\",\n", - " \"launch_vehicle\": \"GSLV\\u2013D2\",\n", - " \"orbit\": \"Geostationary orbit (48oE longitude)\"\n", + " \"name\": \"\\n\\n KALPANA-1\\n \\n\",\n", + " \"id\": 30,\n", + " \"mission\": \"7 Years\",\n", + " \"spacecraft_mass\": \"1060 kg mass (at Lift \\u2013 off) 498 kg (Dry mass)\",\n", + " \"onboard_power\": \"550 W\",\n", + " \"payload\": \"Very High Resolution Radiometer (VHRR) Data Relay Transponder (DRT)\",\n", + " \"launch_date\": \"12 September 2002\",\n", + " \"launch_site\": \"SHAR, Sriharikota\",\n", + " \"launch_vehicle\": \"PSLV \\u2013 C4\",\n", + " \"orbit\": \"Geostationary (74 deg East longitude)\"\n", " },\n", " {\n", - " \"name\": \"INSAT-3A\",\n", - " \"id\": 1,\n", + " \"name\": \"\\n\\n INSAT-3A\\n \\n\",\n", + " \"id\": 31,\n", " \"mission\": \"Telecommunication, broadcasting and Meteorology\",\n", " \"spacecraft_mass\": \"2,950 kg (Mass at Lift\\u2013off) 1,348 kg (Dry mass)\",\n", " \"onboard_power\": \"3,100 W\",\n", @@ -522,493 +573,330 @@ " \"mission_life\": \"12 Years\"\n", " },\n", " {\n", - " \"name\": \"KALPANA-1\",\n", - " \"id\": 1,\n", - " \"mission\": \"7 Years\",\n", - " \"spacecraft_mass\": \"1060 kg mass (at Lift \\u2013 off) 498 kg (Dry mass)\",\n", - " \"onboard_power\": \"550 W\",\n", - " \"payload\": \"Very High Resolution Radiometer (VHRR) Data Relay Transponder (DRT)\",\n", - " \"launch_date\": \"12 September 2002\",\n", - " \"launch_site\": \"SHAR, Sriharikota\",\n", - " \"launch_vehicle\": \"PSLV \\u2013 C4\",\n", - " \"orbit\": \"Geostationary (74 deg East longitude)\"\n", - " },\n", - " {\n", - " \"name\": \"INSAT-3C\",\n", - " \"id\": 1,\n", - " \"mission\": \"Communication, broadcasting and Meteorology\",\n", - " \"spacecraft_mass\": \"2,650 kg (Mass at Lift - off) 1218 kg (Dry mass)\",\n", - " \"onboard_power\": \"2765 W\",\n", - " \"propulsion\": \"Liquid Apogee Motor with fuel and oxidizer stored in separate titanium tanks and pressurant in Kevlar wound titanium tank.\",\n", - " \"payload\": \"24 C band transponders 6 Extended C - band Transponders 2 S - band Transponders\",\n", - " \"launch_date\": \"January 24, 2002\",\n", - " \"launch_site\": \"French Guyana\",\n", - " \"launch_vehicle\": \"Ariane5-V147\",\n", - " \"orbit\": \"Geostationary (74o longitude)\",\n", - " \"mission_life\": \"Very long\"\n", - " },\n", - " {\n", - " \"name\": \"The Technology Experiment Satellite\\n (TES)\",\n", - " \"id\": 1,\n", - " \"launch_date\": \"22 October 2001\",\n", - " \"launch_site\": \"SHAR Centre Sriharikota India\",\n", - " \"launch_vehicle\": \"PSLV- C3\",\n", - " \"orbit\": \"572 km Sun Synchronous\",\n", - " \"payloads\": \"PAN\"\n", - " },\n", - " {\n", - " \"name\": \"PSLV-C3 / TES\",\n", - " \"id\": 1,\n", - " \"launch_date\": \"22 October 2001\",\n", - " \"launch_site\": \"SHAR Centre Sriharikota India\",\n", - " \"launch_vehicle\": \"PSLV- C3\",\n", - " \"orbit\": \"572 km Sun Synchronous\",\n", - " \"payloads\": \"PAN\"\n", - " },\n", - " {\n", - " \"name\": \"GSAT-1\",\n", - " \"id\": 1,\n", + " \"name\": \"\\n\\n INSAT-3E\\n \\n\",\n", + " \"id\": 32,\n", " \"mission\": \"Communication\",\n", - " \"weight\": \"1530 kg\",\n", - " \"launch_date\": \"18 April 2001\",\n", - " \"launch_site\": \"SHAR, Sriharikota\",\n", - " \"launch_vehicle\": \"GSLV \\u2013 D1\",\n", - " \"orbit\": \"Sun Synchronous Geo stationary orbit\"\n", - " },\n", - " {\n", - " \"name\": \"INSAT-3B\",\n", - " \"id\": 1,\n", - " \"mission\": \"Very long\",\n", - " \"spacecraft_mass\": \"2,070 (Mass at Lift \\u2013 off) 970 kg (Dry mass)\",\n", - " \"onboard_power\": \"1,712 W\",\n", - " \"stabilization\": \"3 \\u2013 axis body stabilised biased momentum control system using earth sensors, sun sensors, inertial reference unit, momentum / reaction wheels, magnetic torquers and unified bi-propellant thrusters.\",\n", - " \"propulsion\": \"Liquid Apogee Motor with fuel and oxidizer stored in separate titanium tanks and pressurant in Kevlar wound titanium tank.\",\n", - " \"payload\": \"12 extended C \\u2013 band Transponders Five Ku band Transponders Mobile Satellite Services (MSS)\",\n", - " \"launch_date\": \"22nd March 2000\",\n", + " \"spacecraft_mass\": \"2,775 kg (Mass at Lift-off) 1218 kg (Dry mass)\",\n", + " \"launch_date\": \"September 28, 2003\",\n", " \"launch_site\": \"French Guyana\",\n", - " \"launch_vehicle\": \"Ariane -5\",\n", - " \"orbit\": \"Geostationary (83 deg East longitude)\",\n", - " \"inclination\": \"7 deg\"\n", + " \"launch_vehicle\": \"Ariane5-V162\",\n", + " \"orbit\": \"Geostationary Orbit\"\n", " },\n", " {\n", - " \"name\": \"Oceansat(IRS-P4)\",\n", - " \"id\": 1,\n", - " \"launch_date\": \"May 26, 1999\",\n", + " \"name\": \"\\n\\n IRS-P6 / RESOURCESAT-1\\n \\n\",\n", + " \"id\": 33,\n", + " \"launch_date\": \"October 17, 2003\",\n", " \"launch_site\": \"SHAR, Sriharikota\",\n", - " \"launch_vehicle\": \"PSLV - C2\",\n", + " \"launch_vehicle\": \"PSLV-C5\",\n", + " \"payloads\": \"LISS-4, LISS-3, AWiFS-A, AWiFS-B\",\n", " \"orbit\": \"Polar Sun Synchronous\",\n", - " \"altitude\": \"720 km\",\n", - " \"inclination\": \"98.28 deg\",\n", - " \"period\": \"99.31 min\",\n", - " \"local_time_of_eq._crossing\": \"12 noon\",\n", - " \"repetitivity_cycle\": \"2 days\",\n", - " \"size\": \"2.8m x 1.98m x 2.57m\",\n", - " \"mass_at_lift_off\": \"1050 kg\",\n", - " \"length_when_fully_deployed\": \"11.67 m\",\n", - " \"attitude_and_orbit_control\": \"3-axis body-stabilised using Reaction Wheels, Magnetic Torquers and Hydrazine Thrusters\",\n", - " \"power\": \"9.6 Sq.m Solar Array generating 750w Two 21 Ah Ni-Cd Batteries\",\n", - " \"mission_completed_on\": \"August 8, 2010\"\n", - " },\n", - " {\n", - " \"name\": \"INSAT-2E\",\n", - " \"id\": 1,\n", - " \"mission\": \"Communication and Meteorology\",\n", - " \"spacecraft_mass\": \"2,550 kg (Mass at Lift-off) 1150 kg (Dry mass)\",\n", - " \"launch_date\": \"03 April 1999\",\n", - " \"launch_site\": \"French Guyana\",\n", - " \"launch_vehicle\": \"Ariane \\u2013 42P\",\n", - " \"orbit\": \"Geosynchronous (83 deg east longitude)\"\n", + " \"orbit_height\": \"817 km\",\n", + " \"orbit_inclination\": \"98.7 o\",\n", + " \"orbit_period\": \"101.35 min\",\n", + " \"number_of_orbits_per_day\": \"14\",\n", + " \"local_time_of_equator_crossing\": \"10:30 am\",\n", + " \"repetivity_(liss-3)\": \"24 days\",\n", + " \"revisit\": \"5 days\",\n", + " \"lift-off_mass\": \"1360 kg\",\n", + " \"attitude_and_orbit_control\": \"3-axis body stabilised using Reaction Wheels, Magnetic Torquers and Hydrazine Thrusters\",\n", + " \"power\": \"Solar Array generating 1250 W, Two 24 Ah Ni-Cd batteries\",\n", + " \"mission_life\": \"5 years\"\n", " },\n", " {\n", - " \"name\": \"IRS-1D\",\n", - " \"id\": 1,\n", - " \"mission\": \"Operational Remote Sensing\",\n", - " \"weight\": \"1250 kg\",\n", - " \"onboard_power\": \"809 Watts (generated by 9.6 sq.metres Solar Panels)\",\n", - " \"communication\": \"S-band, X-band\",\n", - " \"stabilization\": \"Three axis body stabilized (zero momentum) with 4 Reaction Wheels, Magnetic torquer\",\n", - " \"rcs\": \"Monopropellant Hydrazine based with sixteen 1 N thrusters & one 11N thrusters\",\n", - " \"payload\": \"Three solid state Push Broom Cameras: PAN (<6 metre solution )LlSS-3(23.6 metre resolution) and WiFS (189 metre resolution)\",\n", - " \"onboard_tape_recorder\": \"Storage Capacity : 62 G bits\",\n", - " \"launch_date\": \"December 28, 1995\",\n", - " \"launch_site\": \"Baikanur Cosmodrome Kazakhstan\",\n", - " \"launch_vehicle\": \"Molniya\",\n", - " \"orbit\": \"817 km Polar Sun-synchronous\",\n", - " \"inclination\": \"98.69o\",\n", - " \"repetivity\": \"24 days\",\n", - " \"local_time\": \"10.30 a.m\",\n", - " \"mission_completed_on\": \"September 21, 2007\"\n", + " \"name\": \"\\n\\n EDUSAT\\n \\n\",\n", + " \"id\": 34,\n", + " \"mission\": \"Education\",\n", + " \"spacecraft_mass\": \"1950.5 kg mass (at Lift - off) 819.4 kg (Dry mass)\",\n", + " \"onboard_power\": \"Total four solar panel of size 2.54 M x 1.525 M generating 2040 W (EOL), two 24 AH NiCd batteries for eclipse support\",\n", + " \"stabilization\": \"3 axis body stabilised in orbit using sensors, momentum and reaction wheels, magnetic torquers and eight 10 N & 22N reaction control thrusters.\",\n", + " \"propulsion\": \"440 N Liquid Apogee Motor with MON - 3 and MMH for orbit raising\",\n", + " \"payload\": \"Six upper extended C - band transponders Five lower Ku band transponders with regional beam coverage One lower Ku band National beam transponder with Indian main land coverage Ku beacon 12 C band high power transponders with extended coverage, covering southeast and northwest region apart from Indian main land using 63 W LTWTAs\",\n", + " \"launch_date\": \"September 20, 2004\",\n", + " \"launch_site\": \"SHAR, Sriharikota, India\",\n", + " \"launch_vehicle\": \"GSLV-F01\",\n", + " \"orbit\": \"Geostationary (74 o E longitude)\",\n", + " \"mission_life\": \"7 Years (minimum)\"\n", " },\n", " {\n", - " \"name\": \"INSAT-2D\",\n", - " \"id\": 1,\n", - " \"mission\": \"Communication\",\n", - " \"weight\": \"2079 kg with propellants, 995 kg dry weight\",\n", - " \"onboard_power\": \"1650 Watts\",\n", - " \"communication\": \"C, extended C, S and Ku bands\",\n", - " \"stabilization\": \"Three axis stabilized with two Momentum Wheels & one Reaction Wheel, Magnetic torquers\",\n", - " \"propulsion\": \"Integrated bipropellan stystem ( MMH and N2 04) With sixteen 22N thrusters and 440N LAM.\",\n", - " \"payload\": \"Transponders: 16C-band / extended C-band transponders (forFSS), 2 high power C-band transponders (for BSS), 1S-band transponder (for BSS),1C/S-band mobile communication transponder, 3 Ku-band transponders\",\n", - " \"launch_date\": \"June 4, 1997\",\n", - " \"launch_site\": \"French Guyana\",\n", - " \"launch_vehicle\": \"Arianev 4\",\n", - " \"orbit\": \"Geostationary 93,.5deg.E\",\n", - " \"inclination\": \"0 deg.\"\n", + " \"name\": \"\\n\\n CARTOSAT-1\\n \\n\",\n", + " \"id\": 35,\n", + " \"launch_date\": \"5 May 2005\",\n", + " \"launch_site\": \"SHAR Centre Sriharikota India\",\n", + " \"launch_vehicle\": \"PSLV- C6\",\n", + " \"orbit\": \"618 km Polar Sun Synchronous\",\n", + " \"payloads\": \"PAN FORE, PAN - AFT\",\n", + " \"orbit_period\": \"97 min\",\n", + " \"number_of_orbits_per_day\": \"14\",\n", + " \"local_time_of_equator_crossing\": \"10:30 am\",\n", + " \"repetivity\": \"126 days\",\n", + " \"revisit\": \"5 days\",\n", + " \"lift-off_mass\": \"1560 kg\",\n", + " \"attitude_and_orbit_control\": \"3-axis body stabillised using reaction wheels, Magnetic Torquers and Hydrazine Thrusters\",\n", + " \"electrical_power\": \"15 sqm Solar Array generating 1100w, Two 24 Ah Ni-Cd batteries\",\n", + " \"mission_life\": \"5 years\"\n", " },\n", " {\n", - " \"name\": \"IRS-P3\",\n", - " \"id\": 1,\n", - " \"mission\": \"Remote sensing of earth's natural resources. Study of X-ray Astronomy. Periodic calibration of PSLV tracking radar located at tracking stations.\",\n", - " \"weight\": \"920 kg\",\n", - " \"onboard_power\": \"817 Watts\",\n", - " \"communication\": \"S-band\",\n", - " \"stabilization\": \"Three axis body stabilized\",\n", - " \"rcs\": \"Combinations of bladder type and surface tension type mass expulsion monopropellant hydrazine system\",\n", - " \"payload\": \"WideField Sensor (WiFS), Modular Opto - electronic Scanner (MOS), Indian X-ray Astronomy Experiment (IXAE), C-band transponder(CBT)\",\n", - " \"launch_date\": \"March 21, 1996\",\n", - " \"launch_site\": \"SHAR Centre, Sriharikota, India\",\n", - " \"launch_vehicle\": \"PSLV-D3\",\n", - " \"orbit\": \"817 km. Circular polar sun-synchronous with equatorial crossing at 10.30 am (descending node)\",\n", - " \"inclination\": \"98.68o\",\n", - " \"repetivity\": \"WiFS : 5 days\",\n", - " \"mission_completed_during\": \"January 2006\"\n", + " \"name\": \"\\n\\n INSAT-4A\\n \\n\",\n", + " \"id\": 36,\n", + " \"spacecraft_mass\": \"Lift off 3081 Kg Dry Mass 1386.55 Kg\",\n", + " \"orbit\": \"Geostationary ( 83o E)\",\n", + " \"power\": \"Solar Array to provide a power of 5922 W\",\n", + " \"battery\": \"Three 70 Ah Ni H2 Batteries for eclipse support of 4264 W\",\n", + " \"life\": \"12 Years\",\n", + " \"launch_date\": \"December 22, 2005\",\n", + " \"launch_vehicle\": \"ARIANE5-V169\"\n", " },\n", " {\n", - " \"name\": \"IRS-1C\",\n", - " \"id\": 1,\n", - " \"mission\": \"Operational Remote Sensing\",\n", - " \"weight\": \"1250 kg\",\n", - " \"onboard_power\": \"809 Watts (generated by 9.6 sq.metres Solar Panels)\",\n", - " \"communication\": \"S-band, X-band\",\n", - " \"stabilization\": \"Three axis body stabilized (zero momentum) with 4 Reaction Wheels, Magnetic torquer\",\n", - " \"rcs\": \"Monopropellant Hydrazine based with sixteen 1 N thrusters & one 11N thrusters\",\n", - " \"payload\": \"Three solid state Push Broom Cameras: PAN (<6 metre solution )LlSS-3(23.6 metre resolution) and WiFS (189 metre resolution)\",\n", - " \"onboard_tape_recorder\": \"Storage Capacity : 62 G bits\",\n", - " \"launch_date\": \"December 28, 1995\",\n", - " \"launch_site\": \"Baikanur Cosmodrome Kazakhstan\",\n", - " \"launch_vehicle\": \"Molniya\",\n", - " \"orbit\": \"817 km Polar Sun-synchronous\",\n", - " \"inclination\": \"98.69o\",\n", - " \"repetivity\": \"24 days\",\n", - " \"local_time\": \"10.30 a.m\",\n", - " \"mission_completed_on\": \"September 21, 2007\"\n", + " \"name\": \"\\n\\n CARTOSAT-2\\n \\n\",\n", + " \"id\": 37,\n", + " \"mission\": \"Remote Sensing\",\n", + " \"weight\": \"650 Kg\",\n", + " \"onboard_orbit\": \"900 Watts\",\n", + " \"stabilization\": \"3 - axis body stabilised using high torque reaction wheels, magnetic torquers and thrusters\",\n", + " \"payloads\": \"Panchromatic Camera\",\n", + " \"launch_date\": \"10 January 2007\",\n", + " \"launch_site\": \"SHAR Centre Sriharikota India\",\n", + " \"launch_vehicle\": \"PSLV- C7\",\n", + " \"orbit\": \"Polar Sun Synchronous\",\n", + " \"mission_life\": \"5 years\"\n", " },\n", " {\n", - " \"name\": \"INSAT-2C\",\n", - " \"id\": 1,\n", + " \"name\": \"\\n\\n INSAT-4B\\n \\n\",\n", + " \"id\": 38,\n", " \"mission\": \"Communication\",\n", - " \"weight\": \"2106 kg with propellants 946 kg dry weight\",\n", - " \"onboard_power\": \"1320 Watts\",\n", - " \"communication\": \"C extended C, S and Ku bands\",\n", - " \"stabilization\": \"Three axis stabilized with two Momen'tum Wheels & one Reaction Wheel, Magnetic torquers\",\n", - " \"propulsion\": \"Integrated bipropellant system ( MMH and N2 04) With sixteen 22N thrusters and 440N LAM.\",\n", - " \"payload\": \"Transponders: 16C-band / extended C-band transponders (for FSS), 2 high power C-band transponders (for BSS), 1S-band transponder (for BSS),1C/S-band mobile communication transponder, 3 Ku-band transponders\",\n", - " \"launch_date\": \"December 7, 1995\",\n", - " \"launch_site\": \"French Guyana\",\n", - " \"launch_vehicle\": \"Ariane4\",\n", - " \"orbit\": \"Geostationary 93.5 deg E\",\n", - " \"inclination\": \"0 deg.\",\n", - " \"mission_life\": \"Seven years(nominal)\",\n", - " \"orbit_life\": \"Very Long\"\n", - " },\n", - " {\n", - " \"name\": \"IRS-P2\",\n", - " \"id\": 1,\n", - " \"mission\": \"Operational Remote Sensing\",\n", - " \"weight\": \"804 kg\",\n", - " \"onboard_power\": \"510 Watts\",\n", - " \"communication\": \"S-band, X-band\",\n", - " \"stabilization\": \"Three axis body stabilized with 4 Reaction Wheels, Magnetic torquers\",\n", - " \"rcs\": \"4 tanks containing Monopropellant Hydrazine based with sixteen 1 N thrusters and one 11 N thruster\",\n", - " \"payload\": \"Two solid state Push Broom Cameras operating in four spectral bands in the visible and near-IR range using CCD arrays: LlSS-2A & LlSS-2B (Resolution: 32.74 metre)\",\n", - " \"launch_date\": \"October 15, 1994\",\n", - " \"launch_site\": \"SHAR Centre, Sriharikota, India\",\n", - " \"launch_vehicle\": \"PSLV-D2\",\n", - " \"inclination\": \"98.68o\",\n", - " \"repetivity\": \"24 days\",\n", - " \"mission_completed_on\": \"1997\"\n", - " },\n", - " {\n", - " \"name\": \"SROSS-C2\\n \",\n", - " \"id\": 1,\n", - " \"mission\": \"Experimental\",\n", - " \"weight\": \"115 kg\",\n", - " \"onboard_power\": \"45 Watts\",\n", - " \"communication\": \"S-band and VHF\",\n", - " \"rcs\": \"Monopropellant Hydrazine based with six 1 Newton thrusters\",\n", - " \"payload\": \"Gamma Ray Burst (GRB) & Retarding Potential Analyser (RPA)\",\n", - " \"launch_date\": \"May 04,1994\",\n", - " \"launch_site\": \"SHAR Centre,Sriharikota,India\",\n", - " \"launch_vehicle\": \"Augmented Satellite Launch Vehicle (ASLV)\",\n", - " \"orbit\": \"430 x 600 km.\",\n", - " \"inclination\": \"45 deg.\",\n", - " \"mission_life\": \"Six months (nominal)\",\n", - " \"orbital_life\": \"Two years (nominal)\"\n", - " },\n", - " {\n", - " \"name\": \"IRS-1E\",\n", - " \"id\": 1,\n", - " \"mission\": \"Operational Remote Sensing\",\n", - " \"weight\": \"846 kg\",\n", - " \"onboard_power\": \"415 Watts\",\n", - " \"communication\": \"S-band (TIC) & VHF\",\n", - " \"stabilization\": \"Three axis body stabilized ( zero momentum) with 4 Reaction Wheels, Magnetic torquers\",\n", - " \"rcs\": \"Monopropellant Hydrazine based RCS with 1 Newton thrusters ( 16 Nos.)\",\n", - " \"payload\": \"LlSS-1 MEOSS (Mono-ocula Erlectro Optic Stereo Scanner)\",\n", - " \"launch_date\": \"September 20, 1993\",\n", - " \"launch_site\": \"SHAR Centre, Sriharikota, India\",\n", - " \"launch_vehicle\": \"PSLV-D1\",\n", - " \"orbit\": \"Not realised\"\n", + " \"weight\": \"3025 kg (at Lift \\u2013 off)\",\n", + " \"onboard_power\": \"5859 W\",\n", + " \"stabilization\": \"It uses 3 earth sensors, 2 digital sun sensors, 8 coarse analog sun sensors, 3 solar panel sun sensors and one sensor processing electronics. The wheels and wheel drive electronics were imported with indigenous wheel interface module to interface the wheel drive electronics and AOCE.\",\n", + " \"propulsion\": \"The propulsion system is employing 16 thrusters, 4 each located on east, west and AY sides and 2 each on north and south sides. There is one 440 N liquid apogee motor (using Mono Methyl Hydrazine (MMH) as fuel and oxides of Nitrogen (MON3 as oxidizer) and three pressurant tanks mounted on the LAM deck.\",\n", + " \"payload\": \"12 Ku band high power transponders covering Indian main land using 140W radiatively cooled TWTAs.\",\n", + " \"launch_date\": \"March 12, 2007\",\n", + " \"launch_site\": \"French Guiana\",\n", + " \"launch_vehicle\": \"Ariane5\",\n", + " \"orbit\": \"Geostationary (93.5 o E Longitude)\",\n", + " \"mission_life\": \"12 Years\"\n", " },\n", " {\n", - " \"name\": \"INSAT-2B\",\n", - " \"id\": 1,\n", - " \"mission\": \"Multipurpose Communication, meteorology and Satellite based search and rescue\",\n", - " \"weight\": \"1906 kg with propellant 916 kg dry weight\",\n", - " \"onboard_power\": \"One KW approx.\",\n", - " \"communication\": \"C, extended C and S band\",\n", - " \"stabilization\": \"Three axis body stabilized with two Momentum Wheels & one Reaction Wheel, Magnetic torquers\",\n", - " \"propulsion\": \"Integrated bipropellant system ( MMH and N2 04) With sixteen 22 N thrusters and 440 N LAM.\",\n", - " \"payload\": \"Transponders: 12C-band (for FSS),6 ext. C-band (for FSS) 2S-band (for BSS),1Data relay transponder (for met.data), 1 transponder for research and rescue, Very High Resolution radiometer (VHRR) for meteorological observation with 2 km resolution in the visible and 8 km resolution in the IR band\",\n", - " \"launch_date\": \"July 23, 1993\",\n", - " \"launch_site\": \"French Guyana\",\n", - " \"launch_vehicle\": \"Ariane 4\",\n", - " \"orbit\": \"Geostationary 93.5o E\",\n", - " \"inclination\": \"0o\",\n", - " \"mission_life\": \"Seven years(nominal)\",\n", - " \"orbit_life\": \"Very Long\"\n", + " \"name\": \"\\n\\n INSAT-4CR\\n \\n\",\n", + " \"id\": 39,\n", + " \"mission\": \"Communication\",\n", + " \"weight\": \"2,130 kg (Mass at Lift \\u2013 off)\",\n", + " \"onboard_power\": \"3000 W\",\n", + " \"communication_payload\": \"12 Ku-band transponders employing 140 W Traveling Wave Tube Amplifiers (TWTA) Ku-band Beacon\",\n", + " \"launch_date\": \"September 2, 2007\",\n", + " \"launch_site\": \"SHAR, Sriharikota, India\",\n", + " \"launch_vehicle\": \"GSLV-F04\",\n", + " \"orbit\": \"Geosynchronous (74\\u00b0 E)\",\n", + " \"mission_life\": \"12 Years\"\n", " },\n", " {\n", - " \"name\": \"INSAT-2A\",\n", - " \"id\": 1,\n", - " \"mission\": \"Multipurpose Communication, meteorology and Satellite based search and rescue\",\n", - " \"weight\": \"1906 kg with propellant 916 kg dry weight\",\n", - " \"onboard_power\": \"One KW approx\",\n", - " \"communication\": \"C, extended C and S band\",\n", - " \"stabilization\": \"Three axis body stabilized with two Momentum Wheels & one Reaction Wheel, Magnetic torquers\",\n", - " \"propulsion\": \"Integrated bipropellant system (MMH and N2 04) With sixteen 22 N thrusters and 440 LAM.\",\n", - " \"payload\": \"Transponders: 12 C-band (for FSS),6 ext. C-band (for FSS) 2 S-band (for BSS),1Data relay transponder (for met.data), 1 transponder for research and rescue, Very High Resolution radiometer (VHRR) for\\u00a0meteorological observation with 2 km resolution in the visible and 8 km resolution in the IR band\",\n", - " \"launch_date\": \"July 10,1992\",\n", - " \"launch_site\": \"French Guyana\",\n", - " \"launch_vehicle\": \"Ariane 4\",\n", - " \"orbit\": \"Geostationary 74oE longitude\",\n", - " \"inclination\": \"0o\",\n", - " \"mission_life\": \"Seven years(nominal)\",\n", - " \"orbit_life\": \"Very Long\"\n", + " \"name\": \"\\n\\n CARTOSAT \\u2013\\n 2A\\n \\n\",\n", + " \"id\": 40,\n", + " \"mission\": \"Remote Sensing\",\n", + " \"weight\": \"690 Kg (Mass at lift off)\",\n", + " \"onboard_power\": \"900 Watts\",\n", + " \"stabilization\": \"3 \\u2013 axis body stabilised using high torque reaction wheels, magnetic torquers and hydrogen thrusters\",\n", + " \"payloads\": \"Panchromatic Camera\",\n", + " \"launch_date\": \"28 April 2008\",\n", + " \"launch_site\": \"SHAR Centre Sriharikota India\",\n", + " \"launch_vehicle\": \"PSLV- C9\",\n", + " \"orbit\": \"635 km, Polar Sun Synchronous\",\n", + " \"inclination\": \"97.94 deg\",\n", + " \"mission_life\": \"5 years\"\n", " },\n", " {\n", - " \"name\": \"SROSS-C\\n\",\n", - " \"id\": 1,\n", - " \"mission\": \"Experimental\",\n", - " \"weight\": \"106.1 kg\",\n", - " \"onboard_power\": \"45 Watts\",\n", - " \"communication\": \"S-band and VHF\",\n", - " \"stabilization\": \"Spin stabilized with a Magnetic Torquer and Magnetic Bias Control\",\n", - " \"payload\": \"Gamma Ray Burst (GRB) experiment & Retarding Potential Analyser (RPA) experiment\",\n", - " \"launch_date\": \"May 20,1992\",\n", - " \"launch_site\": \"SHAR Centre, Sriharikota, India\",\n", - " \"launch_vehicle\": \"Augmented Satellite Launch Vehicle (ASLV)\",\n", - " \"orbit\": \"267 x 391 km\",\n", - " \"mission_life\": \"Two months (Re-entered on July15,1992)\"\n", + " \"name\": \"\\n\\n IMS-1\\n \\n\",\n", + " \"id\": 41,\n", + " \"orbit\": \"Polar Sun Synchronous\",\n", + " \"altitude\": \"635 km\",\n", + " \"mission_life\": \"2 years\",\n", + " \"physical_dimensions\": \"0.604x0.980x1.129 m\",\n", + " \"mass\": \"83 kg\",\n", + " \"power\": \"Two deployable sun pointing solar panels generating 220 W power, 105 Ah Lithium ion battery\",\n", + " \"telemetry,_tracking_and_command\": \"S-band\",\n", + " \"attitude_and_orbit_control_system\": \"Star Sensor, Miniature Sun Sensors, Magnetometers Gyros, Miniature Micro Reaction Wheels, Magnetic Torquers, single 1 N Hydrazine Thruster\",\n", + " \"data_handling\": \"S-band\",\n", + " \"data_storage\": \"16 Gb Solid State Recorder\"\n", " },\n", " {\n", - " \"name\": \"IRS-1B\",\n", - " \"id\": 1,\n", - " \"mission\": \"Operational Remote Sensing\",\n", - " \"weight\": \"975 kg\",\n", - " \"onboard_power\": \"600 Watts\",\n", - " \"communication\": \"S-band, X-band and VHF (commanding only)\",\n", - " \"stabilization\": \"Three axis body stabilized (zero momentum) with 4 Reactions Wheels, Magnetic torquers\",\n", - " \"rcs\": \"Monopropellant Hydrazine based with sixteen 1 Newton thrusters\",\n", - " \"payload\": \"Three solid state Push Broom Cameras LlSS-1 (72.5 metre resolution), LlSS-2A and LlSS-2B (36.25 metre resolution)\",\n", - " \"launch_date\": \"August 29, 1991\",\n", - " \"launch_site\": \"Baikanur Cosmodrome Kazakhstan\",\n", - " \"launch_vehicle\": \"Vostok\",\n", - " \"orbit\": \"904 km Polar Sun Synchronous\",\n", - " \"inclination\": \"99.08o\",\n", - " \"repetivity\": \"22 days\",\n", - " \"local_time\": \"10.30 a.m. (descending node)\",\n", - " \"mission_completed_on\": \"December 20, 2003\"\n", + " \"name\": \"\\n\\n Chandrayaan-1\\n \\n\",\n", + " \"id\": 42,\n", + " \"mission\": \"Remote Sensing, Planetary Science\",\n", + " \"weight\": \"1380 kg (Mass at lift off)\",\n", + " \"onboard_power\": \"700 Watts\",\n", + " \"stabilization\": \"3 - axis stabilised using reaction wheel and attitude control thrusters, sun sensors, star sensors, fibre optic gyros and accelerometers for attitude determination.\",\n", + " \"launch_date\": \"22 October 2008\",\n", + " \"launch_site\": \"SDSC, SHAR, Sriharikota\",\n", + " \"launch_vehicle\": \"PSLV - C11\",\n", + " \"orbit\": \"100 km x 100 km : Lunar Orbit\",\n", + " \"mission_life\": \"2 years\"\n", " },\n", " {\n", - " \"name\": \"SROSS-2\",\n", - " \"id\": 1,\n", - " \"mission\": \"Experimental\",\n", - " \"weight\": \"150 kg\",\n", - " \"onboard_power\": \"90 Watts\",\n", - " \"communication\": \"S-band and VHF\",\n", - " \"stabilization\": \"Three axis body stabilized (biased momentum) with a Momentum Wheel and Magnetic Torquer\",\n", - " \"propulsion_system\": \"Monopropellant (Hydrazine based) Reaction Control System\",\n", - " \"payload\": \"Gamma Ray Burst (GRB) payload and Mono Payload Ocular Electro-Optic Stereo Scanner (MEOSS) built by DLR, Germany\",\n", - " \"launch_date\": \"July 13, 1988\",\n", - " \"launch_site\": \"SHAR Centre, Sriharikota, India\",\n", - " \"launch_vehicle\": \"Augmented Satellite Launch Vehicle (ASLV)\",\n", - " \"orbit\": \"Not realised\"\n", + " \"name\": \"\\n\\n RISAT-2\\n \\n\",\n", + " \"id\": 43,\n", + " \"altitude\": \"550 km\",\n", + " \"inclination\": \"41 deg\",\n", + " \"orbit_period\": \"90 minutes\",\n", + " \"mass\": \"300 kg\"\n", " },\n", " {\n", - " \"name\": \"IRS-1A\",\n", - " \"id\": 1,\n", - " \"mission\": \"Operational Remote Sensing\",\n", - " \"weight\": \"975 kg\",\n", - " \"onboard_power\": \"600 Watts\",\n", - " \"communication\": \"S-band, X-band and VHF(commanding only)\",\n", - " \"stabilization\": \"Three axis body stabilized (zero momentum) with 4 Reactions Wheels, Magnetic torquers\",\n", - " \"rcs\": \"Monopropellant Hydrazine based with sixteen 1 Newton thrusters\",\n", - " \"payload\": \"Three solid state Push Broom Cameras: LISS-1(72.5 metre resolution), LISS-2A and LISS-2B (36.25 metre resolution)\",\n", - " \"launch_date\": \"March 17, 1988\",\n", - " \"launch_site\": \"Baikanur Cosmodrome Kazakhstan\",\n", - " \"launch_vehicle\": \"Vostok\",\n", - " \"orbit\": \"904 km Polar Sun-synchronous\",\n", - " \"inclination\": \"99.08o\",\n", - " \"repetivity\": \"22 days (307 orbits)\",\n", - " \"local_time\": \"10.30 a.m. (descending node)\",\n", - " \"mission_completed_during\": \"July 1996\"\n", + " \"name\": \"\\n\\n Oceansat-2\\n \\n\",\n", + " \"id\": 44,\n", + " \"date\": \"Sept 23, 2009\",\n", + " \"launch_site\": \"SHAR, Sriharikota\",\n", + " \"launch_vehicle\": \"PSLV - C14\",\n", + " \"orbit\": \"Polar Sun Synchronous\",\n", + " \"altitude\": \"720 km\",\n", + " \"inclination\": \"98.28\\u00b0\",\n", + " \"period\": \"99.31 minutes\",\n", + " \"local_time_of_eq._crossing\": \"12 noon \\u00b1 10 minutes\",\n", + " \"repetitivity_cycle\": \"2 days\",\n", + " \"payloads\": \"OCM, SCAT and ROSA\",\n", + " \"mass_at_lift_off\": \"960 kg\",\n", + " \"power\": \"15 Sq.m Solar panels generating 1360W, Two 24 Ah Ni-Cd Batteries\",\n", + " \"mission_life\": \"5 years\"\n", " },\n", " {\n", - " \"name\": \"SROSS-1\\n\",\n", - " \"id\": 1,\n", - " \"mission\": \"Experimental\",\n", - " \"weight\": \"150 kg\",\n", - " \"onboard_power\": \"90 Watts\",\n", - " \"communication\": \"S-band and VHF\",\n", - " \"stabilization\": \"Three axis body stabilized (biased momentum) with a Momentum Wheel and Magnetic Torquer\",\n", - " \"propulsion_system\": \"Monopropellant (Hydrazine based) Reaction control system\",\n", - " \"payload\": \"Launch Vehicle Monitoring Platform(LVMP), Gamma Ray Burst (GRB) payload and Corner Cube Retro Reflector (CCRR) for laser tracking\",\n", - " \"launch_date\": \"March 24, 1987\",\n", - " \"launch_site\": \"SHAR Centre, Sriharikota, India\",\n", - " \"launch_vehicle\": \"Augmented Satellite Launch Vehicle (ASLV)\",\n", - " \"orbital_life\": \"Not realised\"\n", + " \"name\": \"\\n\\n CARTOSAT-2B\\n \\n\",\n", + " \"id\": 45,\n", + " \"mission\": \"Remote Sensing\",\n", + " \"weight\": \"694 kg (Mass at lift off)\",\n", + " \"onboard_orbit\": \"930 Watts\",\n", + " \"stabilization\": \"3 \\u2013 axis body stabilised based on inputs from star sensors and gyros using Reaction wheels, Magnetic Torquers and Hydrazine Thrusters\",\n", + " \"payloads\": \"Panchromatic Camera\",\n", + " \"launch_date\": \"July 12, 2010\",\n", + " \"launch_site\": \"SHAR Centre Sriharikota India\",\n", + " \"launch_vehicle\": \"PSLV- C15\",\n", + " \"orbit\": \"630 kms, Polar Sun Synchronous\",\n", + " \"inclination\": \"97.71\\u00ba\"\n", " },\n", " {\n", - " \"name\": \"Rohini Satellite RS-D2\",\n", - " \"id\": 1,\n", - " \"mission\": \"Experimental\",\n", - " \"weight\": \"41.5 kg\",\n", - " \"onboard_power\": \"16 Watts\",\n", - " \"communication\": \"VHF band\",\n", - " \"stabilization\": \"Spin stabilized\",\n", - " \"payload\": \"Smart sensor (remote sensing payload), L-band beacon\",\n", - " \"launch_date\": \"April 17, 1983\",\n", - " \"launch_site\": \"SHAR Centre, Sriharikota, India\",\n", - " \"launch_vehicle\": \"SLV-3\",\n", - " \"orbit\": \"371 x 861 km\",\n", - " \"inclination\": \"46o\",\n", - " \"mission_life\": \"17 months\",\n", - " \"orbital_life\": \"Seven years (Re-entered on April 19, 1990)\"\n", + " \"name\": \"\\n\\n RESOURCESAT-2\\n \\n\",\n", + " \"id\": 46,\n", + " \"mission\": \"Remote Sensing\",\n", + " \"orbit\": \"Circular Polar Sun Synchronous\",\n", + " \"orbit_altitude_at_injection\": \"822 km + 20 km (3 Sigma)\",\n", + " \"orbit_inclination\": \"98.731\\u00ba + 0.2\\u00ba\",\n", + " \"lift-off_mass\": \"1206 kg\",\n", + " \"orbit_period\": \"101.35 min\",\n", + " \"number_of_orbits_per_day\": \"14\",\n", + " \"local_time_of_equator_crossing\": \"10:30 am\",\n", + " \"repetivity\": \"24 days\",\n", + " \"attitude_and_orbit_control\": \"3-axis body stabilised using Reaction Wheels, Magnetic Torquers and Hydrazine Thrusters\",\n", + " \"power\": \"Solar Array generating 1250 W at End Of Life, two 24 AH Ni-Cd batteries\",\n", + " \"launch_date\": \"April 20, 2011\",\n", + " \"launch_site\": \"SHAR Centre Sriharikota India\",\n", + " \"launch_vehicle\": \"PSLV- C16\",\n", + " \"mission_life\": \"5 years\"\n", " },\n", " {\n", - " \"name\": \"Bhaskara-II\",\n", - " \"id\": 1,\n", - " \"mission\": \"Experimental Remote Sensing\",\n", - " \"weight\": \"444 kg\",\n", - " \"onboard_power\": \"47 Watts\",\n", - " \"communication\": \"VHF band\",\n", - " \"stabilization\": \"Spin stabilized (spin axis controlled)\",\n", - " \"payload\": \"TV cameras, three band Microwave Radiometer (SAMIR)\",\n", - " \"launch_date\": \"Nov 20, 1981\",\n", - " \"launch_site\": \"Volgograd Launch Station (presently in Russia)\",\n", - " \"launch_vehicle\": \"C-1 Intercosmos\",\n", - " \"orbit\": \"541 x 557 km\",\n", - " \"inclination\": \"50.7o\",\n", - " \"mission_life\": \"One year (nominal)\",\n", - " \"orbital_life\": \"About 10 years ( Re-entered in 1991 )\"\n", + " \"name\": \"\\n\\n Megha-Tropiques\\n \\n\",\n", + " \"id\": 47,\n", + " \"lift-off_mass\": \"1000 kg\",\n", + " \"orbit\": \"867 km with an inclination of 20 deg to the equator\",\n", + " \"thermal\": \"Passive system with IRS heritage\",\n", + " \"power\": \"1325 W (at End of Life) Two 24 AH NiCd batteries\",\n", + " \"ttc\": \"S-band\",\n", + " \"attitude_and_orbit_control\": \"3-axis stabilised with 4 Reaction Wheels, Gyros and Star sensors, Hydrazine based RCS\",\n", + " \"solid_state_recorder\": \"16 Gb\",\n", + " \"launch_date\": \"October 12, 2011\",\n", + " \"launch_site\": \"SDSC SHAR Centre, Sriharikota, India\",\n", + " \"launch_vehicle\": \"PSLV- C18\"\n", " },\n", " {\n", - " \"name\": \"APPLE\",\n", - " \"id\": 1,\n", - " \"mission\": \"Experimental geostationary communication\",\n", - " \"weight\": \"670 kg\",\n", - " \"onboard_power\": \"210 Watts\",\n", - " \"communication\": \"VHF and C-band\",\n", - " \"stabilization\": \"Three axis stabilized (biased momentum) with Momentum Wheels, Torquers & \\u00a0Hydrazine based Reaction control system\",\n", - " \"payload\": \"C - band transponders (Two)\",\n", - " \"launch_date\": \"June19,1981\",\n", - " \"launch_site\": \"Kourou (CSG), French Guyana\",\n", - " \"launch_vehicle\": \"Ariane -1(V-3)\",\n", - " \"orbit\": \"Geosynchronous (102 deg. E\\u00a0 longitude, over Indonesia)\",\n", - " \"inclination\": \"Near zero\",\n", - " \"mission_life\": \"Two years\"\n", + " \"name\": \"\\n\\n RISAT-1\\n \\n\",\n", + " \"id\": 48,\n", + " \"mass\": \"1858 kg\",\n", + " \"orbit\": \"Circular Polar Sun Synchronous\",\n", + " \"orbit_altitude\": \"536 km\",\n", + " \"orbit_inclination\": \"97.552 o\",\n", + " \"orbit_period\": \"95.49 min\",\n", + " \"number_of_orbits_per_day\": \"14\",\n", + " \"local_time_of_equator_crossing\": \"6:00 am / 6:00 pm\",\n", + " \"power\": \"Solar Array generating 2200 W and one 70 AH Ni-H2 battery\",\n", + " \"repetivity\": \"25 days\",\n", + " \"attitude_and_orbit_control\": \"3-axis body stabilised using Reaction Wheels, Magnetic Torquers and Hydrazine Thrusters\",\n", + " \"nominal_mission_life\": \"5 years\",\n", + " \"launch_date\": \"April 26, 2012\",\n", + " \"launch_site\": \"SDSC SHAR Centre, Sriharikota, India\",\n", + " \"launch_vehicle\": \"PSLV- C19\"\n", " },\n", " {\n", - " \"name\": \"Rohini Satellite RS-D1\",\n", - " \"id\": 1,\n", - " \"mission\": \"Experimental\",\n", - " \"weight\": \"38 kg\",\n", - " \"onboard_power\": \"16 Watts\",\n", - " \"communication\": \"VHF band\",\n", - " \"stabilization\": \"Spin stabilized\",\n", - " \"payload\": \"Landmark Tracker ( remote sensing payload)\",\n", - " \"launch_date\": \"May 31,1981\",\n", - " \"launch_site\": \"SHAR Centre, Sriharikota, India\",\n", - " \"launch_vehicle\": \"SLV-3\",\n", - " \"orbit\": \"186 x 418 km (achieved)\",\n", - " \"inclination\": \"46 deg\",\n", - " \"orbital_life\": \"Nine days\"\n", + " \"name\": \"\\n\\n SARAL\\n \\n\",\n", + " \"id\": 49,\n", + " \"lift-off_mass\": \"407 kg\",\n", + " \"orbit\": \"781 km polar Sun synchronous\",\n", + " \"sensors\": \"4 PI sun sensors, magnetometer, star sensors and miniaturised gyro based Inertial Reference Unit\",\n", + " \"orbit_inclination\": \"98.538 o\",\n", + " \"local_time_of_equator\": \"18:00 hours crossing\",\n", + " \"power\": \"Solar Array generating 906 W and 46.8 Ampere-hour Lithium-ion battery\",\n", + " \"onboard_data_storage\": \"32 Gb\",\n", + " \"attitude_and_orbit_control\": \"3-axis stabilisation with reaction wheels, Hydrazine Control System based thrusters\",\n", + " \"mission_life\": \"5 years\",\n", + " \"launch_date\": \"Feb 25, 2013\",\n", + " \"launch_site\": \"SDSC SHAR Centre, Sriharikota, India\",\n", + " \"launch_vehicle\": \"PSLV - C20\"\n", " },\n", " {\n", - " \"name\": \"Rohini Satellite RS-1\",\n", - " \"id\": 1,\n", - " \"mission\": \"Experimental\",\n", - " \"weight\": \"35 kg\",\n", - " \"onboard_power\": \"16 Watts\",\n", - " \"communication\": \"VHF band\",\n", - " \"stabilization\": \"Spin stabilized\",\n", - " \"payload\": \"Launch vehicle monitoring instruments\",\n", - " \"launch_date\": \"July 18,1980\",\n", - " \"launch_site\": \"SHAR Centre, Sriharikota, India\",\n", - " \"launch_vehicle\": \"SLV-3\",\n", - " \"orbit\": \"305 x 919 km\",\n", - " \"inclination\": \"44.7 deg.\",\n", - " \"mission_life\": \"1.2 years\",\n", - " \"orbital_life\": \"20 months\"\n", + " \"name\": \"\\n\\n IRNSS-1A\\n \\n\",\n", + " \"id\": 50,\n", + " \"lift-off_mass\": \"1425 kg\",\n", + " \"physical_dimensions\": \"1.58 metre x 1.50 metre x 1.50 metre\",\n", + " \"orbit\": \"Geosynchronous, at 55 deg East longitude with 29 deg inclination\",\n", + " \"power\": \"Two solar panels generating 1660 W, one lithium-ion battery of 90 Ampere-Hour capacity\",\n", + " \"propulsion\": \"440 Newton Liquid Apogee Motor, twelve 22 Newton Thrusters\",\n", + " \"control_system\": \"Zero momentum system, orientation input from Sun & star Sensors and Gyroscopes; Reaction Wheels, Magnetic Torquers and 22 Newton thrusters as actuators\",\n", + " \"mission_life\": \"10 years\",\n", + " \"launch_date\": \"Jul 01, 2013\",\n", + " \"launch_site\": \"SDSC SHAR Centre, Sriharikota, India\",\n", + " \"launch_vehicle\": \"PSLV - C22\"\n", " },\n", " {\n", - " \"name\": \"Rohini Technology Payload\\n (RTP)\",\n", - " \"id\": 1,\n", - " \"mission\": \"Experimental\",\n", - " \"weight\": \"35 kg\",\n", - " \"onboard_power\": \"3 Watts\",\n", - " \"communication\": \"VHF band\",\n", - " \"stabilization\": \"Spin stabilized (spin axis controlled)\",\n", - " \"payload\": \"Launch vehicle monitoring instruments\",\n", - " \"launch_date\": \"August 10,1979\",\n", - " \"launch_site\": \"SHAR Centre, Sriharikota, India\",\n", - " \"launch_vehicle\": \"SLV-3\",\n", - " \"orbit\": \"Not achieved\"\n", + " \"name\": \"\\n\\n INSAT-3D\\n \\n\",\n", + " \"id\": 51,\n", + " \"mission\": \"Meteorological and Search & Rescue Services\",\n", + " \"mass_at_lift-off\": \"2060 kg\",\n", + " \"power\": \"Solar panel generating 1164 W Two 18 Ah Ni-Cd batteries\",\n", + " \"physical_dimensions\": \"2.4m x 1.6m x 1.5m\",\n", + " \"propulsion\": \"440 Newton Liquid Apogee Motor (LAM) and twelve 22 Newton thrusters with Mono Methyl Hydrazine (MMH) as fuel and mixed Oxides of Nitrogen (MON-3) as oxidizer\",\n", + " \"stabilisation\": \"3-asix body stabilized in orbit using Sun Sensors, Star Sensors, gyroscopes, Momentum and Reaction Wheels, Magnetic Torquers and thrusters\",\n", + " \"antennae\": \"0.9m and 1.0m body mounted antennas\",\n", + " \"launch_date\": \"July 26, 2013\",\n", + " \"launch_site\": \"Kourou, French Guiana\",\n", + " \"launch_vehicle\": \"Ariane-5 VA-214\",\n", + " \"orbit\": \"Geostationary, 82 deg E Longitude\",\n", + " \"mission_life\": \"7 Years\"\n", " },\n", " {\n", - " \"name\": \"Bhaskara-I\",\n", - " \"id\": 1,\n", - " \"mission\": \"Experimental Remote Sensing\",\n", - " \"weight\": \"442 kg\",\n", - " \"onboard_power\": \"47 Watts\",\n", - " \"communication\": \"VHF band\",\n", - " \"stabilization\": \"Spin stabilized (spin axis controlled)\",\n", - " \"payload\": \"TVcameras, three band Microwave Radiometer (SAMIR)\",\n", - " \"launch_date\": \"Jun 07,1979\",\n", - " \"launch_site\": \"Volgograd Launch Station (presently in Russia)\",\n", - " \"launch_vehicle\": \"C-1Intercosmos\",\n", - " \"orbit\": \"519 x 541 km\",\n", - " \"inclination\": \"50.6 deg\",\n", - " \"mission_life\": \"One year (nominal)\",\n", - " \"orbital_life\": \"About 10 years ( Re-entered in 1989 )\"\n", + " \"name\": \"\\n\\n IRNSS-1B\\n \\n\",\n", + " \"id\": 52,\n", + " \"off_mass\": \"1432 kg\",\n", + " \"physical_dimensions\": \"1.58 metre x 1.50 metre x 1.50 metre\",\n", + " \"orbit\": \"Geosynchronous, at 55 deg East longitude with 29 deg inclination\",\n", + " \"power\": \"Two solar panels generating 1660 W, one lithium-ion battery of 90 Ampere-Hour capacity\",\n", + " \"propulsion\": \"440 Newton Liquid Apogee Motor, twelve 22 Newton Thrusters\",\n", + " \"control_system\": \"Zero momentum system, orientation input from Sun & star Sensors and Gyroscopes; Reaction Wheels, Magnetic Torquers and 22 Newton thrusters as actuators\",\n", + " \"mission_life\": \"10 years\",\n", + " \"launch_date\": \"Apr 04, 2014\",\n", + " \"launch_site\": \"SDSC SHAR Centre, Sriharikota, India\",\n", + " \"launch_vehicle\": \"PSLV - C24\"\n", " },\n", " {\n", - " \"name\": \"Aryabhata \",\n", - " \"id\": 1,\n", - " \"mission\": \"Scientific/ Experimental\",\n", - " \"weight\": \"360 kg\",\n", - " \"on_board_power\": \"46 Watts\",\n", - " \"communication\": \"VHF band\",\n", - " \"stabilization\": \"Spinstabilize\",\n", - " \"payload\": \"X-ray Astronomy Aeronomy & Solar Physics\",\n", - " \"launch_date\": \"April 19, 1975\",\n", - " \"launch_site\": \"Volgograd Launch Station (presently in Russia)\",\n", - " \"launch_vehicle\": \"C-1 Intercosmos\",\n", - " \"orbit\": \"563 x 619 km\",\n", - " \"inclination\": \"50.7 deg\",\n", - " \"mission_life\": \"6 months(nominal), Spacecraft mainframe active till March,1981\",\n", - " \"orbital_life\": \"Nearly seventeen years (Re-entered on February 10,1992)\"\n", + " \"name\": \"\\n\\n Cartosat-3\\n \\n\",\n", + " \"id\": 53,\n", + " \"mean________________________________________________________________altitude\": \"509 km\",\n", + " \"mean_inclination\": \"97.5\\u00b0\",\n", + " \"overall_mass\": \"1625 kg\",\n", + " \"power_generation\": \"2000W\",\n", + " \"mission_life\": \"5 years\"\n", + " },\n", + " {\n", + " \"name\": \"\\n\\n RISAT-2BR1\\n \\n\",\n", + " \"id\": 54,\n", + " \"lift-off_weight\": \"628 kg\",\n", + " \"altitude\": \"576 km\",\n", + " \"payload\": \"X-Band Radar\",\n", + " \"inclination\": \"37 deg\",\n", + " \"mission_life\": \"5 years\"\n", " }\n", "]\n" ] @@ -1022,7 +910,7 @@ " link = spacecraft[\"href\"]\n", " url = \"https://www.isro.gov.in/{craft}\".format(craft=link)\n", " response = requests.get(url)\n", - " soup = BeautifulSoup(response.text,'lxml')\n", + " soup = BeautifulSoup(response.text,'html.parser')\n", " tables = soup.find_all(\"table\", {\"class\":\"pContent table table-striped table-bordered\"})\n", " count = 0\n", " for table in tables:\n", @@ -1037,31 +925,37 @@ " data.append(dt)\n", "\n", "\n", - "data = data.reverse\n", + "data.reverse()\n", "for i in range(len(data)):\n", " data[i][\"id\"] = i+1\n", "\n", "json_data = json.dumps(data,indent=2)\n", - "print(json_data)\n", - "\n", - "\n", - "\n", - "\n" + "print(json_data)\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ - "\n" + "\n", + "# save json data to file\n", + "with open(\"isro_spacecrafts_scraper_output.json\",\"w\") as f:\n", + " f.write(json_data)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "venv-codex", "language": "python", "name": "python3" }, @@ -1075,7 +969,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.2" + "version": "3.11.0" }, "orig_nbformat": 4 }, diff --git a/scripts/normalize_data.py b/scripts/normalize_data.py new file mode 100644 index 0000000..db5b7af --- /dev/null +++ b/scripts/normalize_data.py @@ -0,0 +1,797 @@ +#!/usr/bin/env python3 +""" +ISRO API Data Normalization Pipeline +===================================== +Cleans, normalizes, and enriches all JSON data files for the ISRO API. + +Handles: +- spacecraft_missions.json: 9+ field name variants for mass, 5+ for power, + 15+ date formats, trailing newlines, duplicate entries, inconsistent schemas +- spacecrafts.json: enriches bare id+name with data from missions +- launchers.json: enriches bare id with vehicle family classification +- customer_satellites.json: normalizes country names, dates, mass types +- centres.json: fixes inconsistent field casing + +Run: python scripts/normalize_data.py +""" + +import json +import re +import sys +from pathlib import Path +from datetime import datetime + +# --------------------------------------------------------------------------- +# Paths +# --------------------------------------------------------------------------- +ROOT = Path(__file__).resolve().parent.parent +DATA_DIR = ROOT / "data" + +# --------------------------------------------------------------------------- +# Date parsing +# --------------------------------------------------------------------------- +DATE_FORMATS = [ + "%Y-%m-%d", # ISO 8601 (idempotent re-runs) + "%B %d, %Y", # April 19, 1975 + "%b %d, %Y", # Jun 07, 1979 / Jul 01, 2013 + "%B %d,%Y", # June19,1981 (after space insertion) + "%b %d,%Y", # Jun 07,1979 + "%d %B %Y", # 22 October 2008 + "%d %b %Y", # 22 Oct 2008 + "%d-%m-%Y", # 26-05-1999 + "%B %Y", # fallback for month+year only +] + +# Insert space between month name and day if missing: "June19,1981" -> "June 19,1981" +_DATE_FIX_NOSPACE = re.compile(r'([a-zA-Z])(\d)') +# Remove ordinal suffixes: "22nd" -> "22", "3rd" -> "3" +_DATE_FIX_ORDINAL = re.compile(r'(\d+)(st|nd|rd|th)\b') + + +def parse_date(raw): + """Parse a date string in any of ISRO's many formats into ISO 8601 (YYYY-MM-DD).""" + if not raw or not isinstance(raw, str): + return None + s = raw.strip() + if not s: + return None + # Fix missing space between month name and digit + s = _DATE_FIX_NOSPACE.sub(r'\1 \2', s) + # Remove ordinal suffixes + s = _DATE_FIX_ORDINAL.sub(r'\1', s) + # Normalize non-standard abbreviations: "Sept" -> "Sep" + s = re.sub(r'\bSept\b', 'Sep', s) + # Normalize multiple spaces + s = re.sub(r'\s+', ' ', s).strip() + + for fmt in DATE_FORMATS: + try: + return datetime.strptime(s, fmt).strftime("%Y-%m-%d") + except ValueError: + continue + # Last resort: try to find a year + m = re.search(r'\b((?:19|20)\d{2})\b', s) + if m: + return m.group(1) # Return just the year + return raw.strip() # Return cleaned original if nothing works + + +# --------------------------------------------------------------------------- +# Numeric extraction helpers +# --------------------------------------------------------------------------- +def extract_first_number(s): + """Extract the first numeric value from a string like '1380 kg (Mass at lift off)'.""" + if s is None: + return None + if isinstance(s, (int, float)): + return float(s) + s = str(s).strip() + if not s: + return None + # Remove commas in numbers: "2,650" -> "2650" + s_clean = s.replace(',', '') + m = re.search(r'[\d.]+', s_clean) + if m: + try: + return float(m.group()) + except ValueError: + return None + return None + + +def extract_mass_kg(entry): + """Extract lift-off mass in kg from any of the 9+ field name variants.""" + mass_fields = [ + 'mass_kg', # our normalized field (shouldn't exist yet, but just in case) + 'lift-off_weight', 'lift-off_mass', 'mass_at_lift-off', 'mass_at_lift_off', + 'off_mass', 'overall_mass', 'spacecraft_mass', 'weight', 'mass', + ] + for field in mass_fields: + val = entry.get(field) + if val is not None: + num = extract_first_number(val) + if num is not None and num > 0: + return num + return None + + +def extract_power_watts(entry): + """Extract power in watts from various field names and formats. + + Handles tricky cases like '15 Sq.m Solar Array generating 1360W' where the + first number is the panel area, not the wattage. + """ + power_fields = [ + 'power_watts', # normalized field name (for idempotent re-runs) + 'power', 'onboard_power', 'on_board_power', 'electrical_power', + 'onboard_orbit', # known typo for onboard_power + 'power_generation', + ] + for field in power_fields: + val = entry.get(field) + if val is not None: + # Already a number (idempotent re-run) + if isinstance(val, (int, float)): + return float(val) + s = str(val).strip() + # "One KW approx" -> 1000 + if re.match(r'one\s+kw', s, re.IGNORECASE): + return 1000.0 + + # Look for explicit wattage near "W" or "Watts" or "watt" first. + # This avoids extracting solar panel area (e.g. "15 Sq.m") instead + # of the actual power number (e.g. "generating 1360W"). + watt_match = re.search( + r'([\d,]+(?:\.\d+)?)\s*(?:watts?|w)\b', s, re.IGNORECASE + ) + if watt_match: + num_str = watt_match.group(1).replace(',', '') + try: + return float(num_str) + except ValueError: + pass + + # Check if it's in kW + kw_match = re.search( + r'([\d,]+(?:\.\d+)?)\s*kw\b', s, re.IGNORECASE + ) + if kw_match: + num_str = kw_match.group(1).replace(',', '') + try: + return float(num_str) * 1000 + except ValueError: + pass + + # Fallback: extract first number (for simple cases like "3100") + num = extract_first_number(s) + if num is not None and num > 0: + return num + return None + + +def extract_inclination_deg(entry): + """Extract inclination as a float from various formats.""" + inc_fields = ['inclination_deg', # normalized (idempotent) + 'inclination', 'mean_inclination', 'orbit_inclination'] + for field in inc_fields: + val = entry.get(field) + if val is not None: + num = extract_first_number(str(val)) + if num is not None: + return num + return None + + +def extract_altitude_km(entry): + """Extract altitude in km.""" + alt_fields = ['altitude_km', # normalized field name (idempotent) + 'altitude', 'mean_altitude', 'orbit_altitude', 'orbit_height', + 'orbit_altitude_at_injection'] + # Handle mangled field name from fresh scraper output + for key in list(entry.keys()): + if 'altitude' in key.lower() and key not in alt_fields and '_' * 5 in key: + alt_fields.append(key) + for field in alt_fields: + val = entry.get(field) + if val is not None: + num = extract_first_number(str(val)) + if num is not None: + return num + return None + + +# --------------------------------------------------------------------------- +# Mission-specific extractors +# --------------------------------------------------------------------------- +def extract_field(entry, field_names): + """Return the first non-empty value from a list of possible field names.""" + for f in field_names: + val = entry.get(f) + if val is not None: + s = str(val).strip().replace('\n', ' ') + s = re.sub(r'\s+', ' ', s) + if s: + return s + return None + + +def clean_name(name): + """Clean a spacecraft/mission name: strip whitespace, newlines, normalize dashes.""" + if not name: + return name + s = name.strip().replace('\n', ' ') + s = re.sub(r'\s+', ' ', s) + # Normalize various dash types to standard hyphen + s = s.replace('\u2013', '-').replace('\u2014', '-') # en-dash, em-dash + # Fix "CARTOSAT - 2A" -> "CARTOSAT-2A" (remove spaces around hyphens between word and number) + s = re.sub(r'\s*-\s*', '-', s) + return s + + +def extract_mission_type(entry): + """Extract mission type/purpose, avoiding mis-stored mission_life values.""" + # Check normalized field first (idempotent re-run) + val = entry.get('mission_type') or entry.get('mission') + if val is None: + return None + s = str(val).strip() + # These are mission_life values incorrectly stored in 'mission' + if re.match(r'^[\d>~]+\s*(years?|months?|days?)', s, re.IGNORECASE): + return None + if s.lower() in ('very long',): + return None + return s + + +def extract_mission_life(entry): + """Extract mission life from various field names, including mis-stored 'mission' field.""" + # First check dedicated mission_life fields + life_fields = ['mission_life', 'nominal_mission_life', 'life'] + for f in life_fields: + val = entry.get(f) + if val is not None: + s = str(val).strip() + if s: + return normalize_mission_life(s) + + # Check if 'mission' field actually contains mission life + val = entry.get('mission') + if val is not None: + s = str(val).strip() + if re.match(r'^[\d>~]+\s*(years?|months?|days?)', s, re.IGNORECASE): + return normalize_mission_life(s) + if s.lower() in ('very long',): + return s + + return None + + +def normalize_mission_life(s): + """Normalize mission life strings to consistent format.""" + s = s.strip() + # Remove parenthetical details like "(nominal)" or "(Re-entered on ...)" + # but keep the core info + core = re.split(r'\s*\(', s)[0].strip() + if not core: + core = s + # "Seven years" -> "7 years", etc. + word_to_num = { + 'one': '1', 'two': '2', 'three': '3', 'four': '4', 'five': '5', + 'six': '6', 'seven': '7', 'eight': '8', 'nine': '9', 'ten': '10', + 'twelve': '12', 'fifteen': '15', 'seventeen': '17', 'twenty': '20', + } + lower = core.lower() + for word, num in word_to_num.items(): + if lower.startswith(word): + core = num + core[len(word):] + break + # Normalize "Years" -> "years", "Months" -> "months" + core = re.sub(r'\b(Years?|Months?|Days?)\b', lambda m: m.group().lower(), core) + # "More Than 12 years" -> ">12 years" + core = re.sub(r'^more\s+than\s+', '>', core, flags=re.IGNORECASE) + # "About 8 years" -> "~8 years" + core = re.sub(r'^about\s+', '~', core, flags=re.IGNORECASE) + return core + + +def classify_orbit_type(entry): + """Classify orbit type from orbit description.""" + # Preserve existing classification on re-runs (idempotent) + existing = entry.get('orbit_type') + if existing and existing in ('LEO', 'SSO', 'GEO', 'GTO', 'Lunar', 'Interplanetary', 'Polar', 'Failed'): + return existing + + orbit = str(entry.get('orbit', '')).lower() + name = str(entry.get('name', '')).lower() + + if 'not realised' in orbit or 'not achieved' in orbit: + return "Failed" + if 'lunar' in orbit or 'chandrayaan' in name or 'moon' in orbit: + return "Lunar" + if 'mars' in name or 'mars' in orbit: + return "Interplanetary" + if 'geostationary' in orbit or 'geosynchronous' in orbit or 'geo stationary' in orbit: + return "GEO" + if 'sun synchronous' in orbit or 'sun-synchronous' in orbit or 'polar sun' in orbit: + return "SSO" + if 'polar' in orbit: + return "Polar" + # Check altitude for LEO classification + alt = extract_altitude_km(entry) + if alt and alt < 2000: + return "LEO" + return None + + +def extract_stabilization(entry): + """Extract stabilization info from various misspelled field names.""" + fields = ['stabilization', 'stabilisation', 'satbilisation', + 'attitude_and_orbit_control', 'attitude_and_orbit_control_system_(aocs)', + 'attitude_orbit_control', 'attitude_and_orbit_control_system', + 'aocs', 'control_system'] + return extract_field(entry, fields) + + +def extract_propulsion(entry): + """Extract propulsion info.""" + fields = ['propulsion', 'propulsion_system', 'rcs'] + return extract_field(entry, fields) + + +# --------------------------------------------------------------------------- +# Status inference +# --------------------------------------------------------------------------- +def infer_status(entry): + """Infer whether a mission is active, decommissioned, or failed.""" + # Preserve already-inferred status on re-runs (idempotent) + existing = entry.get('status') + if existing and existing in ('active', 'decommissioned', 'failed'): + return existing + + orbit = str(entry.get('orbit', '')).lower() + if 'not realised' in orbit or 'not achieved' in orbit: + return "failed" + + # Check for mission_completed_on or mission_completed_during fields + for f in ['mission_completed_on', 'mission_completed_during']: + if entry.get(f): + return "decommissioned" + + # Check mission_life and orbital_life for re-entry info + for f in ['mission_life', 'orbital_life', 'orbit_life']: + val = str(entry.get(f, '')).lower() + if 're-entered' in val or 're-entry' in val: + return "decommissioned" + + # Estimate from launch date and mission life + launch_str = extract_field(entry, ['launch_date', 'date']) + if launch_str: + date_iso = parse_date(launch_str) + if date_iso and len(date_iso) == 10: + try: + launch_dt = datetime.strptime(date_iso, "%Y-%m-%d") + life_str = extract_mission_life(entry) + if life_str: + years_match = re.search(r'(\d+)\s*years?', str(life_str), re.IGNORECASE) + months_match = re.search(r'(\d+)\s*months?', str(life_str), re.IGNORECASE) + total_years = 0 + if years_match: + total_years = int(years_match.group(1)) + elif months_match: + total_years = int(months_match.group(1)) / 12 + if total_years > 0: + from datetime import timedelta + end_dt = launch_dt + timedelta(days=total_years * 365.25) + if end_dt < datetime(2026, 1, 1): + return "decommissioned" + else: + return "active" + # Very old missions without explicit life info + if launch_dt.year < 2000: + return "decommissioned" + except (ValueError, TypeError): + pass + + return "unknown" + + +# --------------------------------------------------------------------------- +# Normalize spacecraft_missions.json +# --------------------------------------------------------------------------- +DUPLICATE_MISSION_IDS = { + # TES appears twice (id 28 "PSLV-C3 / TES" and id 29 "The Technology Experiment Satellite (TES)") + # Keep id 29 which has the proper name; drop id 28 which is launcher/spacecraft hybrid name + 28, +} + +# Names to exclude (normalized lowercase) -- catches duplicates across data sources +DUPLICATE_MISSION_NAMES = { + "pslv-c3 / tes", + "pslv-c3/tes", +} + + +SCRAPER_OUTPUT = ROOT / "isro_scrape" / "isro_spacecrafts_scraper_output.json" + + +def _normalize_entry(entry): + """Normalize a single mission entry into the canonical schema.""" + name = clean_name(entry.get('name', '')) + launch_date = parse_date(extract_field(entry, ['launch_date', 'date'])) + mission_type = extract_mission_type(entry) + orbit_type = classify_orbit_type(entry) + status = infer_status(entry) + + return { + "id": entry.get('id'), + "name": name, + "mission_type": mission_type, + "launch_date": launch_date, + "launch_site": extract_field(entry, ['launch_site']), + "launch_vehicle": extract_field(entry, ['launch_vehicle']), + "orbit": extract_field(entry, ['orbit']), + "orbit_type": orbit_type, + "altitude_km": extract_altitude_km(entry), + "inclination_deg": extract_inclination_deg(entry), + "mass_kg": extract_mass_kg(entry), + "power_watts": extract_power_watts(entry), + "mission_life": extract_mission_life(entry), + "status": status, + "payloads": extract_field(entry, ['payloads', 'payload', 'communication_payloads']), + "stabilization": extract_stabilization(entry), + "propulsion": extract_propulsion(entry), + } + + +def _merge_records(old, new): + """Merge two normalized records, preferring non-null values from `new`.""" + merged = dict(old) + for key, val in new.items(): + if val is not None: + merged[key] = val + return merged + + +def normalize_missions(): + """Normalize spacecraft_missions.json into a consistent schema. + + If a fresh scraper output exists at isro_scrape/isro_spacecrafts_scraper_output.json, + merges it with the existing data -- fresh scraper data takes priority for non-null + fields, but existing entries not in the scraper output are preserved. + """ + with open(DATA_DIR / "spacecraft_missions.json", "r", encoding="utf-8") as f: + raw = json.load(f) + + # Raw file is a plain array (not wrapped in object) + if isinstance(raw, list): + entries = raw + else: + entries = raw.get("spacecraft_missions", raw) + + # Build lookup by cleaned name from existing data + by_name = {} + for entry in entries: + eid = entry.get('id') + if eid in DUPLICATE_MISSION_IDS: + continue + record = _normalize_entry(entry) + if record['name']: + key = record['name'].lower() + if key in DUPLICATE_MISSION_NAMES: + continue + by_name[key] = record + + # Merge with fresh scraper output if available + if SCRAPER_OUTPUT.exists(): + print(f" Merging with fresh scraper output: {SCRAPER_OUTPUT.name}") + with open(SCRAPER_OUTPUT, "r", encoding="utf-8") as f: + scraper_data = json.load(f) + merged_count = 0 + for entry in scraper_data: + record = _normalize_entry(entry) + if record['name']: + key = record['name'].lower() + if key in DUPLICATE_MISSION_NAMES: + continue + if key in by_name: + by_name[key] = _merge_records(by_name[key], record) + else: + by_name[key] = record + merged_count += 1 + print(f" Merged {merged_count} records from scraper output") + + normalized = list(by_name.values()) + + # Re-assign sequential IDs (oldest first, by launch date) + def sort_key(r): + d = r.get('launch_date') or '9999' + return d + normalized.sort(key=sort_key) + for i, record in enumerate(normalized, start=1): + record['id'] = i + + return {"spacecraft_missions": normalized} + + +# --------------------------------------------------------------------------- +# Normalize & enrich spacecrafts.json +# --------------------------------------------------------------------------- +def build_missions_lookup(missions_data): + """Build a lookup dict from cleaned mission name -> mission record.""" + lookup = {} + for m in missions_data["spacecraft_missions"]: + name = m["name"] + if name: + # Store under exact cleaned name + lookup[name.lower()] = m + # Also store under simplified name (remove series suffixes etc.) + simple = re.sub(r'\s*series\s*satellite\b', '', name, flags=re.IGNORECASE).strip() + if simple.lower() != name.lower(): + lookup[simple.lower()] = m + return lookup + + +def normalize_spacecrafts(missions_data): + """Enrich spacecrafts.json with data from missions.""" + with open(DATA_DIR / "spacecrafts.json", "r", encoding="utf-8") as f: + raw = json.load(f) + + spacecrafts = raw.get("spacecrafts", raw) + lookup = build_missions_lookup(missions_data) + + enriched = [] + for sc in spacecrafts: + name = clean_name(sc.get('name', '')) + name_lower = name.lower() if name else '' + + # Try to find matching mission + mission = lookup.get(name_lower) + + # Try alternative lookups if exact match fails + if not mission and name_lower: + # Try without trailing numbers for series satellites + for key, val in lookup.items(): + if name_lower in key or key in name_lower: + mission = val + break + + record = { + "id": sc["id"], + "name": name, + } + + if mission: + record["launch_date"] = mission.get("launch_date") + record["launch_vehicle"] = mission.get("launch_vehicle") + record["mission_type"] = mission.get("mission_type") + record["orbit_type"] = mission.get("orbit_type") + record["mass_kg"] = mission.get("mass_kg") + record["status"] = mission.get("status") + else: + record["launch_date"] = None + record["launch_vehicle"] = None + record["mission_type"] = None + record["orbit_type"] = None + record["mass_kg"] = None + record["status"] = None + + enriched.append(record) + + return {"spacecrafts": enriched} + + +# --------------------------------------------------------------------------- +# Normalize & enrich launchers.json +# --------------------------------------------------------------------------- +LAUNCHER_FAMILIES = { + 'SLV': 'SLV', + 'ASLV': 'ASLV', + 'PSLV': 'PSLV', + 'GSLV Mk III': 'GSLV Mk III', + 'GSLV-Mk III': 'GSLV Mk III', + 'LVM': 'LVM-3', + 'GSLV': 'GSLV', + 'RLV': 'RLV', + 'Scramjet': 'Scramjet-TD', +} + + +def classify_launcher_family(launcher_id): + """Classify a launcher into its vehicle family.""" + lid = str(launcher_id).strip() + # Check longest prefixes first to avoid GSLV matching before GSLV Mk III + for prefix in sorted(LAUNCHER_FAMILIES.keys(), key=len, reverse=True): + if lid.startswith(prefix): + return LAUNCHER_FAMILIES[prefix] + return "Unknown" + + +def normalize_launchers(customer_sats_data): + """Enrich launchers.json with vehicle family and customer satellite stats.""" + with open(DATA_DIR / "launchers.json", "r", encoding="utf-8") as f: + raw = json.load(f) + + launchers = raw.get("launchers", raw) + + # Build a map of launcher -> customer satellites launched + cust_by_launcher = {} + for sat in customer_sats_data.get("customer_satellites", []): + lid = sat.get("launcher", "") + if lid not in cust_by_launcher: + cust_by_launcher[lid] = [] + cust_by_launcher[lid].append(sat.get("id", "")) + + enriched = [] + for launcher in launchers: + lid = launcher["id"] + family = classify_launcher_family(lid) + cust_sats = cust_by_launcher.get(lid, []) + + record = { + "id": lid, + "vehicle_family": family, + } + if cust_sats: + record["customer_satellites_launched"] = cust_sats + + enriched.append(record) + + return {"launchers": enriched} + + +# --------------------------------------------------------------------------- +# Normalize customer_satellites.json +# --------------------------------------------------------------------------- +COUNTRY_NORMALIZE = { + "REPUBLIC OF KOREA": "South Korea", + "GERMANY": "Germany", + "BELGIUM": "Belgium", + "INDONESIA": "Indonesia", + "ARGENTINA": "Argentina", + "ITALY": "Italy", + "ISRAEL": "Israel", + "CANADA": "Canada", + "JAPAN": "Japan", + "THE NETHERLANDS": "Netherlands", + "DENMARK": "Denmark", + "TURKEY": "Turkey", + "SWITZERLAND": "Switzerland", + "ALGERIA": "Algeria", + "NORWAY": "Norway", + "SINGAPORE": "Singapore", + "LUXEMBOURG": "Luxembourg", + "FRANCE": "France", + "UNITED KINGDOM": "United Kingdom", + "UK": "United Kingdom", + "USA": "United States", + "BRAZIL": "Brazil", + "Germany": "Germany", +} + + +def normalize_customer_satellites(): + """Clean customer_satellites.json: dates, mass, country names.""" + with open(DATA_DIR / "customer_satellites.json", "r", encoding="utf-8") as f: + raw = json.load(f) + + satellites = raw.get("customer_satellites", raw) + cleaned = [] + + for sat in satellites: + country_raw = sat.get("country", "").strip() + country = COUNTRY_NORMALIZE.get(country_raw, country_raw.title()) + + # Support both original 'mass' field and normalized 'mass_kg' (idempotent) + mass_raw = sat.get("mass_kg", sat.get("mass", "")) + if isinstance(mass_raw, (int, float)): + mass_kg = float(mass_raw) if mass_raw else None + else: + mass_kg = extract_first_number(mass_raw) if mass_raw else None + + launch_date = parse_date(sat.get("launch_date", "")) + + record = { + "id": sat["id"], + "country": country, + "launch_date": launch_date, + "mass_kg": mass_kg, + "launcher": sat.get("launcher", ""), + } + cleaned.append(record) + + return {"customer_satellites": cleaned} + + +# --------------------------------------------------------------------------- +# Normalize centres.json +# --------------------------------------------------------------------------- +def normalize_centres(): + """Fix field casing in centres.json.""" + with open(DATA_DIR / "centres.json", "r", encoding="utf-8") as f: + raw = json.load(f) + + centres = raw.get("centres", raw) + cleaned = [] + + for centre in centres: + record = { + "id": centre["id"], + "name": centre["name"], + "place": centre.get("Place", centre.get("place", "")), + "state": centre.get("State", centre.get("state", "")), + } + cleaned.append(record) + + return {"centres": cleaned} + + +# --------------------------------------------------------------------------- +# Main +# --------------------------------------------------------------------------- +def write_json(data, filename): + """Write data to a JSON file with consistent formatting.""" + path = DATA_DIR / filename + with open(path, "w", encoding="utf-8") as f: + json.dump(data, f, indent=2, ensure_ascii=False) + count = len(list(data.values())[0]) if data else 0 + print(f" {filename}: {count} records written") + + +def main(): + print("ISRO API Data Normalization Pipeline") + print("=" * 50) + + print("\n[1/5] Normalizing spacecraft_missions.json...") + missions = normalize_missions() + write_json(missions, "spacecraft_missions.json") + + print("\n[2/5] Normalizing & enriching spacecrafts.json...") + spacecrafts = normalize_spacecrafts(missions) + write_json(spacecrafts, "spacecrafts.json") + + print("\n[3/5] Normalizing customer_satellites.json...") + cust_sats = normalize_customer_satellites() + write_json(cust_sats, "customer_satellites.json") + + print("\n[4/5] Normalizing & enriching launchers.json...") + launchers = normalize_launchers(cust_sats) + write_json(launchers, "launchers.json") + + print("\n[5/5] Normalizing centres.json...") + centres = normalize_centres() + write_json(centres, "centres.json") + + # Print summary stats + print("\n" + "=" * 50) + print("SUMMARY") + print("=" * 50) + m = missions["spacecraft_missions"] + print(f" Missions: {len(m)} records") + print(f" - With launch_date: {sum(1 for r in m if r['launch_date'])}") + print(f" - With mass_kg: {sum(1 for r in m if r['mass_kg'])}") + print(f" - With power_watts: {sum(1 for r in m if r['power_watts'])}") + print(f" - With orbit_type: {sum(1 for r in m if r['orbit_type'])}") + print(f" - Status active: {sum(1 for r in m if r['status'] == 'active')}") + print(f" - Status decommissioned: {sum(1 for r in m if r['status'] == 'decommissioned')}") + print(f" - Status failed: {sum(1 for r in m if r['status'] == 'failed')}") + + sc = spacecrafts["spacecrafts"] + enriched = sum(1 for r in sc if r.get('launch_date')) + print(f"\n Spacecrafts: {len(sc)} records ({enriched} enriched from missions)") + + cs = cust_sats["customer_satellites"] + countries = set(r['country'] for r in cs) + print(f"\n Customer Satellites: {len(cs)} records from {len(countries)} countries") + + la = launchers["launchers"] + families = set(r['vehicle_family'] for r in la) + print(f"\n Launchers: {len(la)} records across {len(families)} families: {sorted(families)}") + + ce = centres["centres"] + print(f"\n Centres: {len(ce)} records") + + print("\nDone! All files written to data/") + + +if __name__ == "__main__": + main() From 175d07b5c69b1f9693bf8ad171f5bd7809dccb19 Mon Sep 17 00:00:00 2001 From: adityaasopa Date: Thu, 12 Mar 2026 15:53:17 +0530 Subject: [PATCH 2/7] feat: add /api/stats analytics endpoint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Returns aggregate statistics computed at runtime from the five data collections: record counts, mission status distribution, orbit type breakdown, mission type breakdown, spacecraft status, customer satellite country distribution and total mass, and launcher vehicle family counts. All values derived directly from the JSON data files — nothing hardcoded. Co-Authored-By: Claude Sonnet 4.6 --- api/stats.js | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 api/stats.js diff --git a/api/stats.js b/api/stats.js new file mode 100644 index 0000000..dbc3d23 --- /dev/null +++ b/api/stats.js @@ -0,0 +1,56 @@ +const spacecrafts = require("../data/spacecrafts.json"); +const launchers = require("../data/launchers.json"); +const customerSatellites = require("../data/customer_satellites.json"); +const centres = require("../data/centres.json"); +const spacecraftMissions = require("../data/spacecraft_missions.json"); + +function countBy(arr, field) { + return arr.reduce((acc, item) => { + const key = item[field] != null ? String(item[field]) : "unknown"; + acc[key] = (acc[key] || 0) + 1; + return acc; + }, {}); +} + +module.exports = async (req, res) => { + try { + res.setHeader("Content-Type", "application/json"); + + const missions = spacecraftMissions.spacecraft_missions; + const crafts = spacecrafts.spacecrafts; + const sats = customerSatellites.customer_satellites; + const launch = launchers.launchers; + const centreList = centres.centres; + + const totalMassKg = sats.reduce((sum, s) => sum + (s.mass_kg || 0), 0); + + res.send({ + totals: { + spacecrafts: crafts.length, + launchers: launch.length, + customer_satellites: sats.length, + centres: centreList.length, + spacecraft_missions: missions.length, + }, + spacecraft_missions: { + by_status: countBy(missions, "status"), + by_orbit_type: countBy(missions, "orbit_type"), + by_mission_type: countBy(missions, "mission_type"), + }, + spacecrafts: { + by_status: countBy(crafts, "status"), + by_orbit_type: countBy(crafts, "orbit_type"), + }, + customer_satellites: { + by_country: countBy(sats, "country"), + total_mass_kg: Math.round(totalMassKg * 10) / 10, + }, + launchers: { + by_vehicle_family: countBy(launch, "vehicle_family"), + }, + }); + } catch (error) { + res.status(500); + res.send({ error: error.message }); + } +}; From a29ca4eee8813b73fac60989049e5e4a3779c22e Mon Sep 17 00:00:00 2001 From: adityaasopa Date: Thu, 12 Mar 2026 16:03:51 +0530 Subject: [PATCH 3/7] feat: add query parameter filtering to all collection endpoints MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Each collection endpoint now accepts filter parameters: - /api/spacecrafts?status=active&orbit_type=GEO&mission_type=Communication&launch_vehicle=PSLV - /api/launchers?vehicle_family=PSLV - /api/customer_satellites?country=Germany&launcher=PSLV-C37 - /api/centres?state=Karnataka - /api/spacecraft_missions?status=active&orbit_type=SSO&mission_type=Remote+Sensing&launch_site=SDSC+SHAR Filters are case-insensitive and composable — multiple params narrow results. Unknown params are ignored. Empty array returned (not 404) when filters match no records. No changes to existing response shape when called without params. --- api/centres.js | 15 +++++++++++++-- api/customer_satellites.js | 13 ++++++++++++- api/launchers.js | 15 +++++++++++++-- api/spacecraft_missions.js | 13 ++++++++++++- api/spacecrafts.js | 15 +++++++++++++-- 5 files changed, 63 insertions(+), 8 deletions(-) diff --git a/api/centres.js b/api/centres.js index 75f23c4..13cb1eb 100644 --- a/api/centres.js +++ b/api/centres.js @@ -1,9 +1,20 @@ -const centres = require("../data/centres.json"); +const data = require("../data/centres.json"); + +const ALLOWED_FILTERS = ["state"]; module.exports = async (req, res) => { try { res.setHeader("Content-Type", "application/json"); - res.send(centres); + let results = data.centres; + for (const key of ALLOWED_FILTERS) { + if (req.query[key] !== undefined) { + const val = String(req.query[key]).toLowerCase(); + results = results.filter( + (r) => r[key] != null && String(r[key]).toLowerCase() === val + ); + } + } + res.send({ centres: results }); } catch (error) { res.status(500); res.send({ error: error.message }); diff --git a/api/customer_satellites.js b/api/customer_satellites.js index a064224..9051808 100644 --- a/api/customer_satellites.js +++ b/api/customer_satellites.js @@ -1,9 +1,20 @@ const customerSatellites = require("../data/customer_satellites.json"); +const ALLOWED_FILTERS = ["country", "launcher"]; + module.exports = async (req, res) => { try { res.setHeader("Content-Type", "application/json"); - res.send(customerSatellites); + let results = customerSatellites.customer_satellites; + for (const key of ALLOWED_FILTERS) { + if (req.query[key] !== undefined) { + const val = String(req.query[key]).toLowerCase(); + results = results.filter( + (r) => r[key] != null && String(r[key]).toLowerCase() === val + ); + } + } + res.send({ customer_satellites: results }); } catch (error) { res.status(500); res.send({ error: error.message }); diff --git a/api/launchers.js b/api/launchers.js index afe22f6..6e01416 100644 --- a/api/launchers.js +++ b/api/launchers.js @@ -1,9 +1,20 @@ -const launchers = require("../data/launchers.json"); +const data = require("../data/launchers.json"); + +const ALLOWED_FILTERS = ["vehicle_family"]; module.exports = async (req, res) => { try { res.setHeader("Content-Type", "application/json"); - res.send(launchers); + let results = data.launchers; + for (const key of ALLOWED_FILTERS) { + if (req.query[key] !== undefined) { + const val = String(req.query[key]).toLowerCase(); + results = results.filter( + (r) => r[key] != null && String(r[key]).toLowerCase() === val + ); + } + } + res.send({ launchers: results }); } catch (error) { res.status(500); res.send({ error: error.message }); diff --git a/api/spacecraft_missions.js b/api/spacecraft_missions.js index ada0f50..7a0af81 100644 --- a/api/spacecraft_missions.js +++ b/api/spacecraft_missions.js @@ -1,9 +1,20 @@ const spacecraftMissions = require("../data/spacecraft_missions.json"); +const ALLOWED_FILTERS = ["status", "orbit_type", "mission_type", "launch_vehicle", "launch_site"]; + module.exports = async (req, res) => { try { res.setHeader("Content-Type", "application/json"); - res.send(spacecraftMissions); + let results = spacecraftMissions.spacecraft_missions; + for (const key of ALLOWED_FILTERS) { + if (req.query[key] !== undefined) { + const val = String(req.query[key]).toLowerCase(); + results = results.filter( + (r) => r[key] != null && String(r[key]).toLowerCase() === val + ); + } + } + res.send({ spacecraft_missions: results }); } catch (error) { res.status(500); res.send({ error: error.message }); diff --git a/api/spacecrafts.js b/api/spacecrafts.js index 18141ce..c4c699e 100644 --- a/api/spacecrafts.js +++ b/api/spacecrafts.js @@ -1,9 +1,20 @@ -const spacecrafts = require("../data/spacecrafts.json"); +const data = require("../data/spacecrafts.json"); + +const ALLOWED_FILTERS = ["status", "orbit_type", "mission_type", "launch_vehicle"]; module.exports = async (req, res) => { try { res.setHeader("Content-Type", "application/json"); - res.send(spacecrafts); + let results = data.spacecrafts; + for (const key of ALLOWED_FILTERS) { + if (req.query[key] !== undefined) { + const val = String(req.query[key]).toLowerCase(); + results = results.filter( + (r) => r[key] != null && String(r[key]).toLowerCase() === val + ); + } + } + res.send({ spacecrafts: results }); } catch (error) { res.status(500); res.send({ error: error.message }); From edf48efe97654100ac4455a74e8dde942a1b0ef1 Mon Sep 17 00:00:00 2001 From: adityaasopa Date: Thu, 12 Mar 2026 15:53:49 +0530 Subject: [PATCH 4/7] feat: add individual resource endpoints by ID MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds /api/:resource/:id endpoints for all five collections: - GET /api/spacecrafts/:id - GET /api/launchers/:id - GET /api/customer_satellites/:id - GET /api/centres/:id - GET /api/spacecraft_missions/:id Returns the matching record directly (not wrapped), 404 if not found, 400 if ID is not a valid integer. No new data added — reads directly from existing normalized JSON files. Co-Authored-By: Claude Sonnet 4.6 --- api/centres/[id].js | 21 +++++++++++++++++++++ api/customer_satellites/[id].js | 21 +++++++++++++++++++++ api/launchers/[id].js | 21 +++++++++++++++++++++ api/spacecraft_missions/[id].js | 21 +++++++++++++++++++++ api/spacecrafts/[id].js | 21 +++++++++++++++++++++ 5 files changed, 105 insertions(+) create mode 100644 api/centres/[id].js create mode 100644 api/customer_satellites/[id].js create mode 100644 api/launchers/[id].js create mode 100644 api/spacecraft_missions/[id].js create mode 100644 api/spacecrafts/[id].js diff --git a/api/centres/[id].js b/api/centres/[id].js new file mode 100644 index 0000000..793dfd2 --- /dev/null +++ b/api/centres/[id].js @@ -0,0 +1,21 @@ +const data = require("../../data/centres.json"); + +module.exports = async (req, res) => { + try { + res.setHeader("Content-Type", "application/json"); + const id = parseInt(req.query.id, 10); + if (isNaN(id)) { + res.status(400); + return res.send({ error: "Invalid ID" }); + } + const record = data.centres.find((c) => c.id === id); + if (!record) { + res.status(404); + return res.send({ error: "Not found" }); + } + res.send(record); + } catch (error) { + res.status(500); + res.send({ error: error.message }); + } +}; diff --git a/api/customer_satellites/[id].js b/api/customer_satellites/[id].js new file mode 100644 index 0000000..be4b22f --- /dev/null +++ b/api/customer_satellites/[id].js @@ -0,0 +1,21 @@ +const data = require("../../data/customer_satellites.json"); + +module.exports = async (req, res) => { + try { + res.setHeader("Content-Type", "application/json"); + const id = parseInt(req.query.id, 10); + if (isNaN(id)) { + res.status(400); + return res.send({ error: "Invalid ID" }); + } + const record = data.customer_satellites.find((s) => s.id === id); + if (!record) { + res.status(404); + return res.send({ error: "Not found" }); + } + res.send(record); + } catch (error) { + res.status(500); + res.send({ error: error.message }); + } +}; diff --git a/api/launchers/[id].js b/api/launchers/[id].js new file mode 100644 index 0000000..c872e6a --- /dev/null +++ b/api/launchers/[id].js @@ -0,0 +1,21 @@ +const data = require("../../data/launchers.json"); + +module.exports = async (req, res) => { + try { + res.setHeader("Content-Type", "application/json"); + const id = parseInt(req.query.id, 10); + if (isNaN(id)) { + res.status(400); + return res.send({ error: "Invalid ID" }); + } + const record = data.launchers.find((l) => l.id === id); + if (!record) { + res.status(404); + return res.send({ error: "Not found" }); + } + res.send(record); + } catch (error) { + res.status(500); + res.send({ error: error.message }); + } +}; diff --git a/api/spacecraft_missions/[id].js b/api/spacecraft_missions/[id].js new file mode 100644 index 0000000..250a467 --- /dev/null +++ b/api/spacecraft_missions/[id].js @@ -0,0 +1,21 @@ +const data = require("../../data/spacecraft_missions.json"); + +module.exports = async (req, res) => { + try { + res.setHeader("Content-Type", "application/json"); + const id = parseInt(req.query.id, 10); + if (isNaN(id)) { + res.status(400); + return res.send({ error: "Invalid ID" }); + } + const record = data.spacecraft_missions.find((m) => m.id === id); + if (!record) { + res.status(404); + return res.send({ error: "Not found" }); + } + res.send(record); + } catch (error) { + res.status(500); + res.send({ error: error.message }); + } +}; diff --git a/api/spacecrafts/[id].js b/api/spacecrafts/[id].js new file mode 100644 index 0000000..7ed5fd2 --- /dev/null +++ b/api/spacecrafts/[id].js @@ -0,0 +1,21 @@ +const data = require("../../data/spacecrafts.json"); + +module.exports = async (req, res) => { + try { + res.setHeader("Content-Type", "application/json"); + const id = parseInt(req.query.id, 10); + if (isNaN(id)) { + res.status(400); + return res.send({ error: "Invalid ID" }); + } + const record = data.spacecrafts.find((s) => s.id === id); + if (!record) { + res.status(404); + return res.send({ error: "Not found" }); + } + res.send(record); + } catch (error) { + res.status(500); + res.send({ error: error.message }); + } +}; From 332530baad9d3ae83631c2539bf3fb053612d9fc Mon Sep 17 00:00:00 2001 From: adityaasopa Date: Thu, 12 Mar 2026 16:04:51 +0530 Subject: [PATCH 5/7] feat: add relational cross-links to individual resource endpoints MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /api/spacecrafts/:id now includes a _links object: - _links.self: canonical URL for the spacecraft - _links.mission: URL to the matching spacecraft_missions record (when available) /api/spacecraft_missions/:id now includes a _links object: - _links.self: canonical URL for the mission - _links.spacecraft: URL to the matching spacecrafts record (when available) Cross-links are resolved by case-insensitive name matching between the two datasets. All 64 mission records have a matching spacecraft entry. No link is added when no match is found — no guessing. Collection endpoints and other individual endpoints are unchanged. --- api/spacecraft_missions/[id].js | 14 +++++++++++--- api/spacecrafts/[id].js | 14 +++++++++++--- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/api/spacecraft_missions/[id].js b/api/spacecraft_missions/[id].js index 250a467..73aa88c 100644 --- a/api/spacecraft_missions/[id].js +++ b/api/spacecraft_missions/[id].js @@ -1,4 +1,5 @@ -const data = require("../../data/spacecraft_missions.json"); +const missions = require("../../data/spacecraft_missions.json"); +const spacecrafts = require("../../data/spacecrafts.json"); module.exports = async (req, res) => { try { @@ -8,12 +9,19 @@ module.exports = async (req, res) => { res.status(400); return res.send({ error: "Invalid ID" }); } - const record = data.spacecraft_missions.find((m) => m.id === id); + const record = missions.spacecraft_missions.find((m) => m.id === id); if (!record) { res.status(404); return res.send({ error: "Not found" }); } - res.send(record); + const spacecraft = spacecrafts.spacecrafts.find( + (s) => s.name.toLowerCase() === record.name.toLowerCase() + ); + const result = { ...record, _links: { self: `/api/spacecraft_missions/${id}` } }; + if (spacecraft) { + result._links.spacecraft = `/api/spacecrafts/${spacecraft.id}`; + } + res.send(result); } catch (error) { res.status(500); res.send({ error: error.message }); diff --git a/api/spacecrafts/[id].js b/api/spacecrafts/[id].js index 7ed5fd2..0342062 100644 --- a/api/spacecrafts/[id].js +++ b/api/spacecrafts/[id].js @@ -1,4 +1,5 @@ -const data = require("../../data/spacecrafts.json"); +const spacecrafts = require("../../data/spacecrafts.json"); +const missions = require("../../data/spacecraft_missions.json"); module.exports = async (req, res) => { try { @@ -8,12 +9,19 @@ module.exports = async (req, res) => { res.status(400); return res.send({ error: "Invalid ID" }); } - const record = data.spacecrafts.find((s) => s.id === id); + const record = spacecrafts.spacecrafts.find((s) => s.id === id); if (!record) { res.status(404); return res.send({ error: "Not found" }); } - res.send(record); + const mission = missions.spacecraft_missions.find( + (m) => m.name.toLowerCase() === record.name.toLowerCase() + ); + const result = { ...record, _links: { self: `/api/spacecrafts/${id}` } }; + if (mission) { + result._links.mission = `/api/spacecraft_missions/${mission.id}`; + } + res.send(result); } catch (error) { res.status(500); res.send({ error: error.message }); From c055ddbda9d46de2c474a755ed97bcd62df48671 Mon Sep 17 00:00:00 2001 From: adityaasopa Date: Thu, 12 Mar 2026 16:09:10 +0530 Subject: [PATCH 6/7] feat: add JSON Schema validation and CI data integrity checks Adds schema definitions and automated validation for all five data files: Schemas (schemas/*.schema.json): - Enforce required fields (id, name, status where applicable) - Constrain orbit_type and status to known enum values - Validate ISO 8601 date format on all date fields - Require numeric types for mass_kg, power_watts, altitude_km - Reject unknown fields (additionalProperties: false) Validation script (scripts/validate_schemas.js): - Zero-dependency beyond ajv (devDependency only, not runtime) - Runs locally: npm run validate - Exits 0 on success, 1 on any schema violation CI workflow (.github/workflows/validate_data.yml): - Triggers on any PR or push to master that touches data/ or schemas/ - Runs on ubuntu-latest with Node 20 - Fails the PR if any data file violates its schema All five data files currently pass validation (confirmed pre-commit). --- .github/workflows/validate_data.yml | 30 ++++++++++++++++++ package.json | 7 ++++- schemas/centres.schema.json | 23 ++++++++++++++ schemas/customer_satellites.schema.json | 24 ++++++++++++++ schemas/launchers.schema.json | 24 ++++++++++++++ schemas/spacecraft_missions.schema.json | 36 +++++++++++++++++++++ schemas/spacecrafts.schema.json | 27 ++++++++++++++++ scripts/validate_schemas.js | 42 +++++++++++++++++++++++++ 8 files changed, 212 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/validate_data.yml create mode 100644 schemas/centres.schema.json create mode 100644 schemas/customer_satellites.schema.json create mode 100644 schemas/launchers.schema.json create mode 100644 schemas/spacecraft_missions.schema.json create mode 100644 schemas/spacecrafts.schema.json create mode 100644 scripts/validate_schemas.js diff --git a/.github/workflows/validate_data.yml b/.github/workflows/validate_data.yml new file mode 100644 index 0000000..4b7545a --- /dev/null +++ b/.github/workflows/validate_data.yml @@ -0,0 +1,30 @@ +name: Validate Data + +on: + pull_request: + paths: + - "data/**" + - "schemas/**" + push: + branches: + - master + paths: + - "data/**" + - "schemas/**" + +jobs: + validate: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: "20" + + - name: Install dependencies + run: npm install + + - name: Validate data files against schemas + run: node scripts/validate_schemas.js diff --git a/package.json b/package.json index 07d57cb..9a4bf63 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,11 @@ "repository": "isro.vercel.app", "author": "isro", "license": "MIT", + "scripts": { + "validate": "node scripts/validate_schemas.js" + }, "dependencies": {}, - "devDependencies": {} + "devDependencies": { + "ajv": "^8.17.1" + } } \ No newline at end of file diff --git a/schemas/centres.schema.json b/schemas/centres.schema.json new file mode 100644 index 0000000..6255821 --- /dev/null +++ b/schemas/centres.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Centres", + "type": "object", + "required": ["centres"], + "additionalProperties": false, + "properties": { + "centres": { + "type": "array", + "items": { + "type": "object", + "required": ["id", "name"], + "additionalProperties": false, + "properties": { + "id": { "type": "integer", "minimum": 1 }, + "name": { "type": "string", "minLength": 1 }, + "place": { "type": ["string", "null"] }, + "state": { "type": ["string", "null"] } + } + } + } + } +} diff --git a/schemas/customer_satellites.schema.json b/schemas/customer_satellites.schema.json new file mode 100644 index 0000000..2aa2975 --- /dev/null +++ b/schemas/customer_satellites.schema.json @@ -0,0 +1,24 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Customer Satellites", + "type": "object", + "required": ["customer_satellites"], + "additionalProperties": false, + "properties": { + "customer_satellites": { + "type": "array", + "items": { + "type": "object", + "required": ["id"], + "additionalProperties": false, + "properties": { + "id": { "type": "integer", "minimum": 1 }, + "country": { "type": ["string", "null"] }, + "launch_date": { "type": ["string", "null"], "pattern": "^\\d{4}-\\d{2}-\\d{2}$" }, + "mass_kg": { "type": ["number", "null"], "minimum": 0 }, + "launcher": { "type": ["string", "null"] } + } + } + } + } +} diff --git a/schemas/launchers.schema.json b/schemas/launchers.schema.json new file mode 100644 index 0000000..0dace0a --- /dev/null +++ b/schemas/launchers.schema.json @@ -0,0 +1,24 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Launchers", + "type": "object", + "required": ["launchers"], + "additionalProperties": false, + "properties": { + "launchers": { + "type": "array", + "items": { + "type": "object", + "required": ["id"], + "additionalProperties": false, + "properties": { + "id": { "type": "integer", "minimum": 1 }, + "vehicle_family": { + "type": ["string", "null"], + "enum": ["SLV", "ASLV", "PSLV", "GSLV", "GSLV Mk III", "LVM-3", "RLV", "Scramjet-TD", null] + } + } + } + } + } +} diff --git a/schemas/spacecraft_missions.schema.json b/schemas/spacecraft_missions.schema.json new file mode 100644 index 0000000..d6681fb --- /dev/null +++ b/schemas/spacecraft_missions.schema.json @@ -0,0 +1,36 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Spacecraft Missions", + "type": "object", + "required": ["spacecraft_missions"], + "additionalProperties": false, + "properties": { + "spacecraft_missions": { + "type": "array", + "items": { + "type": "object", + "required": ["id", "name", "status"], + "additionalProperties": false, + "properties": { + "id": { "type": "integer", "minimum": 1 }, + "name": { "type": "string", "minLength": 1 }, + "mission_type": { "type": ["string", "null"] }, + "launch_date": { "type": ["string", "null"], "pattern": "^\\d{4}-\\d{2}-\\d{2}$" }, + "launch_site": { "type": ["string", "null"] }, + "launch_vehicle": { "type": ["string", "null"] }, + "orbit": { "type": ["string", "null"] }, + "orbit_type": { "type": ["string", "null"], "enum": ["LEO", "SSO", "GEO", "Lunar", "Interplanetary", "Failed", null] }, + "altitude_km": { "type": ["number", "null"], "minimum": 0 }, + "inclination_deg": { "type": ["number", "null"], "minimum": 0, "maximum": 180 }, + "mass_kg": { "type": ["number", "null"], "minimum": 0 }, + "power_watts": { "type": ["number", "null"], "minimum": 0 }, + "mission_life": { "type": ["string", "null"] }, + "status": { "type": "string", "enum": ["active", "decommissioned", "failed", "unknown"] }, + "payloads": { "type": ["string", "null"] }, + "stabilization": { "type": ["string", "null"] }, + "propulsion": { "type": ["string", "null"] } + } + } + } + } +} diff --git a/schemas/spacecrafts.schema.json b/schemas/spacecrafts.schema.json new file mode 100644 index 0000000..8161252 --- /dev/null +++ b/schemas/spacecrafts.schema.json @@ -0,0 +1,27 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Spacecrafts", + "type": "object", + "required": ["spacecrafts"], + "additionalProperties": false, + "properties": { + "spacecrafts": { + "type": "array", + "items": { + "type": "object", + "required": ["id", "name"], + "additionalProperties": false, + "properties": { + "id": { "type": "integer", "minimum": 1 }, + "name": { "type": "string", "minLength": 1 }, + "launch_date": { "type": ["string", "null"], "pattern": "^\\d{4}-\\d{2}-\\d{2}$" }, + "launch_vehicle": { "type": ["string", "null"] }, + "mission_type": { "type": ["string", "null"] }, + "orbit_type": { "type": ["string", "null"], "enum": ["LEO", "SSO", "GEO", "Lunar", "Interplanetary", "Failed", null] }, + "mass_kg": { "type": ["number", "null"], "minimum": 0 }, + "status": { "type": ["string", "null"], "enum": ["active", "decommissioned", "failed", "unknown", null] } + } + } + } + } +} diff --git a/scripts/validate_schemas.js b/scripts/validate_schemas.js new file mode 100644 index 0000000..54aeb18 --- /dev/null +++ b/scripts/validate_schemas.js @@ -0,0 +1,42 @@ +#!/usr/bin/env node +/** + * Validates all data files against their JSON Schemas. + * Run: node scripts/validate_schemas.js + * Exit code 0 = all valid, 1 = validation errors found. + */ + +const Ajv = require("ajv"); +const path = require("path"); +const fs = require("fs"); + +const ajv = new Ajv({ allErrors: true }); + +const FILES = [ + { data: "data/spacecrafts.json", schema: "schemas/spacecrafts.schema.json" }, + { data: "data/launchers.json", schema: "schemas/launchers.schema.json" }, + { data: "data/customer_satellites.json", schema: "schemas/customer_satellites.schema.json" }, + { data: "data/centres.json", schema: "schemas/centres.schema.json" }, + { data: "data/spacecraft_missions.json", schema: "schemas/spacecraft_missions.schema.json" }, +]; + +const root = path.resolve(__dirname, ".."); +let allValid = true; + +for (const { data: dataFile, schema: schemaFile } of FILES) { + const data = JSON.parse(fs.readFileSync(path.join(root, dataFile), "utf8")); + const schema = JSON.parse(fs.readFileSync(path.join(root, schemaFile), "utf8")); + const validate = ajv.compile(schema); + const valid = validate(data); + + if (valid) { + console.log(`✓ ${dataFile}`); + } else { + console.error(`✗ ${dataFile}`); + for (const err of validate.errors) { + console.error(` ${err.instancePath || "(root)"} ${err.message}`); + } + allValid = false; + } +} + +process.exit(allValid ? 0 : 1); From e8e4e93ed466a4b5e9ed1bcc4108a3aede934867 Mon Sep 17 00:00:00 2001 From: adityaasopa Date: Thu, 12 Mar 2026 16:17:41 +0530 Subject: [PATCH 7/7] feat: add comprehensive test suite and CI test workflow Adds Jest-based tests across three layers: API handler tests (tests/api/): - spacecrafts, launchers, customer_satellites, centres, spacecraft_missions - Correct HTTP status and Content-Type on all endpoints - Correct record counts returned with no filters - Filter behaviour: case-insensitive, composable, unknown params ignored, empty array (not 404) when no matches - stats: all top-level sections present; every distribution sums to its collection total; total_mass_kg is positive - spacecrafts/:id and spacecraft_missions/:id: valid ID returns record, non-existent ID returns 404, non-integer returns 400, _links present and correctly formatted Data integrity tests (tests/data/integrity.test.js): - All IDs are unique positive integers - No trailing whitespace in name fields - All non-null dates match ISO 8601 format - All non-null numeric fields are positive numbers - status and orbit_type constrained to known enums - country names are title case (regression guard against all-caps) - centres use lowercase field names (regression against Place/State) - No values in wrong fields (mass field cannot be a string name) CI (`.github/workflows/test.yml`): - Runs on every PR and push to master - Installs deps, runs jest, then runs schema validation - Both must pass for CI to go green Test runner: Jest 29 (devDependency only, zero runtime impact). All tests pass against current normalized data. --- .github/workflows/test.yml | 28 ++++ package.json | 7 +- tests/api/centres.test.js | 41 +++++ tests/api/customer_satellites.test.js | 58 +++++++ tests/api/launchers.test.js | 47 ++++++ tests/api/spacecraft_missions-id.test.js | 53 +++++++ tests/api/spacecraft_missions.test.js | 99 ++++++++++++ tests/api/spacecrafts-id.test.js | 46 ++++++ tests/api/spacecrafts.test.js | 85 ++++++++++ tests/api/stats.test.js | 75 +++++++++ tests/data/integrity.test.js | 189 +++++++++++++++++++++++ tests/helpers/mock.js | 31 ++++ 12 files changed, 758 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/test.yml create mode 100644 tests/api/centres.test.js create mode 100644 tests/api/customer_satellites.test.js create mode 100644 tests/api/launchers.test.js create mode 100644 tests/api/spacecraft_missions-id.test.js create mode 100644 tests/api/spacecraft_missions.test.js create mode 100644 tests/api/spacecrafts-id.test.js create mode 100644 tests/api/spacecrafts.test.js create mode 100644 tests/api/stats.test.js create mode 100644 tests/data/integrity.test.js create mode 100644 tests/helpers/mock.js diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..4180ac9 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,28 @@ +name: Tests + +on: + pull_request: + push: + branches: + - master + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: "20" + cache: "npm" + + - name: Install dependencies + run: npm install + + - name: Run tests + run: npm test + + - name: Validate data schemas + run: npm run validate diff --git a/package.json b/package.json index 9a4bf63..542625b 100644 --- a/package.json +++ b/package.json @@ -7,10 +7,15 @@ "author": "isro", "license": "MIT", "scripts": { + "test": "jest --testPathPattern=tests/", "validate": "node scripts/validate_schemas.js" }, + "jest": { + "testEnvironment": "node" + }, "dependencies": {}, "devDependencies": { - "ajv": "^8.17.1" + "ajv": "^8.17.1", + "jest": "^29.7.0" } } \ No newline at end of file diff --git a/tests/api/centres.test.js b/tests/api/centres.test.js new file mode 100644 index 0000000..ac000c6 --- /dev/null +++ b/tests/api/centres.test.js @@ -0,0 +1,41 @@ +const handler = require("../../api/centres"); +const { mockReq, mockRes } = require("../helpers/mock"); + +describe("GET /api/centres", () => { + test("returns 200 with application/json header", async () => { + const res = mockRes(); + await handler(mockReq(), res); + expect(res._status).toBe(200); + expect(res._headers["Content-Type"]).toBe("application/json"); + }); + + test("response has centres wrapper key with 44 records", async () => { + const res = mockRes(); + await handler(mockReq(), res); + expect(res._body).toHaveProperty("centres"); + expect(res._body.centres).toHaveLength(44); + }); + + test("each record has consistent lowercase field names", async () => { + const res = mockRes(); + await handler(mockReq(), res); + for (const r of res._body.centres) { + expect(r).not.toHaveProperty("Place"); + expect(r).not.toHaveProperty("State"); + expect(r).toHaveProperty("id"); + expect(r).toHaveProperty("name"); + } + }); + + test("filters by state (case-insensitive)", async () => { + const res1 = mockRes(); + await handler(mockReq({ state: "Karnataka" }), res1); + const res2 = mockRes(); + await handler(mockReq({ state: "karnataka" }), res2); + expect(res1._body.centres.length).toBeGreaterThan(0); + expect(res1._body.centres).toEqual(res2._body.centres); + for (const r of res1._body.centres) { + expect(r.state.toLowerCase()).toBe("karnataka"); + } + }); +}); diff --git a/tests/api/customer_satellites.test.js b/tests/api/customer_satellites.test.js new file mode 100644 index 0000000..c0ab7de --- /dev/null +++ b/tests/api/customer_satellites.test.js @@ -0,0 +1,58 @@ +const handler = require("../../api/customer_satellites"); +const { mockReq, mockRes } = require("../helpers/mock"); + +const ISO_DATE = /^\d{4}-\d{2}-\d{2}$/; + +describe("GET /api/customer_satellites", () => { + test("returns 200 with application/json header", async () => { + const res = mockRes(); + await handler(mockReq(), res); + expect(res._status).toBe(200); + expect(res._headers["Content-Type"]).toBe("application/json"); + }); + + test("response has customer_satellites wrapper key with 75 records", async () => { + const res = mockRes(); + await handler(mockReq(), res); + expect(res._body).toHaveProperty("customer_satellites"); + expect(res._body.customer_satellites).toHaveLength(75); + }); + + test("all non-null launch_dates are ISO 8601 format", async () => { + const res = mockRes(); + await handler(mockReq(), res); + for (const r of res._body.customer_satellites) { + if (r.launch_date !== null) { + expect(r.launch_date).toMatch(ISO_DATE); + } + } + }); + + test("all non-null mass_kg values are positive numbers", async () => { + const res = mockRes(); + await handler(mockReq(), res); + for (const r of res._body.customer_satellites) { + if (r.mass_kg !== null) { + expect(typeof r.mass_kg).toBe("number"); + expect(r.mass_kg).toBeGreaterThan(0); + } + } + }); + + test("filters by country", async () => { + const res = mockRes(); + await handler(mockReq({ country: "Germany" }), res); + expect(res._body.customer_satellites.length).toBeGreaterThan(0); + for (const r of res._body.customer_satellites) { + expect(r.country.toLowerCase()).toBe("germany"); + } + }); + + test("country filter is case-insensitive", async () => { + const res1 = mockRes(); + await handler(mockReq({ country: "germany" }), res1); + const res2 = mockRes(); + await handler(mockReq({ country: "GERMANY" }), res2); + expect(res1._body.customer_satellites).toEqual(res2._body.customer_satellites); + }); +}); diff --git a/tests/api/launchers.test.js b/tests/api/launchers.test.js new file mode 100644 index 0000000..17ddb1f --- /dev/null +++ b/tests/api/launchers.test.js @@ -0,0 +1,47 @@ +const handler = require("../../api/launchers"); +const { mockReq, mockRes } = require("../helpers/mock"); + +describe("GET /api/launchers", () => { + test("returns 200 with application/json header", async () => { + const res = mockRes(); + await handler(mockReq(), res); + expect(res._status).toBe(200); + expect(res._headers["Content-Type"]).toBe("application/json"); + }); + + test("response has launchers wrapper key with array of 81 records", async () => { + const res = mockRes(); + await handler(mockReq(), res); + expect(res._body).toHaveProperty("launchers"); + expect(res._body.launchers).toHaveLength(81); + }); + + test("each record has an integer id", async () => { + const res = mockRes(); + await handler(mockReq(), res); + for (const record of res._body.launchers) { + expect(Number.isInteger(record.id)).toBe(true); + } + }); + + test("filters by vehicle_family (case-insensitive)", async () => { + const res1 = mockRes(); + await handler(mockReq({ vehicle_family: "PSLV" }), res1); + const res2 = mockRes(); + await handler(mockReq({ vehicle_family: "pslv" }), res2); + expect(res1._body.launchers.length).toBeGreaterThan(0); + expect(res1._body.launchers).toEqual(res2._body.launchers); + for (const r of res1._body.launchers) { + expect(r.vehicle_family).toBe("PSLV"); + } + }); + + test("known vehicle families are present in data", async () => { + const res = mockRes(); + await handler(mockReq(), res); + const families = new Set(res._body.launchers.map((r) => r.vehicle_family)); + for (const f of ["PSLV", "GSLV", "SLV", "ASLV"]) { + expect(families.has(f)).toBe(true); + } + }); +}); diff --git a/tests/api/spacecraft_missions-id.test.js b/tests/api/spacecraft_missions-id.test.js new file mode 100644 index 0000000..2741778 --- /dev/null +++ b/tests/api/spacecraft_missions-id.test.js @@ -0,0 +1,53 @@ +const handler = require("../../api/spacecraft_missions/[id]"); +const { mockReq, mockRes } = require("../helpers/mock"); + +describe("GET /api/spacecraft_missions/:id", () => { + test("returns the correct record for a valid ID", async () => { + const res = mockRes(); + await handler(mockReq({ id: "1" }), res); + expect(res._status).toBe(200); + expect(res._body.id).toBe(1); + expect(typeof res._body.name).toBe("string"); + }); + + test("returns 200 with application/json header", async () => { + const res = mockRes(); + await handler(mockReq({ id: "1" }), res); + expect(res._headers["Content-Type"]).toBe("application/json"); + }); + + test("returns 404 for non-existent ID", async () => { + const res = mockRes(); + await handler(mockReq({ id: "99999" }), res); + expect(res._status).toBe(404); + expect(res._body).toHaveProperty("error"); + }); + + test("returns 400 for non-integer ID", async () => { + const res = mockRes(); + await handler(mockReq({ id: "abc" }), res); + expect(res._status).toBe(400); + expect(res._body).toHaveProperty("error"); + }); + + test("record includes _links.self and _links.spacecraft", async () => { + const res = mockRes(); + await handler(mockReq({ id: "1" }), res); + expect(res._body._links).toHaveProperty("self", "/api/spacecraft_missions/1"); + expect(res._body._links).toHaveProperty("spacecraft"); + expect(res._body._links.spacecraft).toMatch(/^\/api\/spacecrafts\/\d+$/); + }); + + test("record has the full 17-field normalized schema", async () => { + const res = mockRes(); + await handler(mockReq({ id: "1" }), res); + const EXPECTED_FIELDS = [ + "id", "name", "mission_type", "launch_date", "launch_site", "launch_vehicle", + "orbit", "orbit_type", "altitude_km", "inclination_deg", "mass_kg", "power_watts", + "mission_life", "status", "payloads", "stabilization", "propulsion", + ]; + for (const field of EXPECTED_FIELDS) { + expect(res._body).toHaveProperty(field); + } + }); +}); diff --git a/tests/api/spacecraft_missions.test.js b/tests/api/spacecraft_missions.test.js new file mode 100644 index 0000000..38d3fcf --- /dev/null +++ b/tests/api/spacecraft_missions.test.js @@ -0,0 +1,99 @@ +const handler = require("../../api/spacecraft_missions"); +const { mockReq, mockRes } = require("../helpers/mock"); + +const ISO_DATE = /^\d{4}-\d{2}-\d{2}$/; +const VALID_STATUSES = new Set(["active", "decommissioned", "failed", "unknown"]); +const VALID_ORBIT_TYPES = new Set(["LEO", "SSO", "GEO", "Lunar", "Interplanetary", "Failed"]); + +describe("GET /api/spacecraft_missions", () => { + test("returns 200 with application/json header", async () => { + const res = mockRes(); + await handler(mockReq(), res); + expect(res._status).toBe(200); + expect(res._headers["Content-Type"]).toBe("application/json"); + }); + + test("response has spacecraft_missions wrapper key with 64 records", async () => { + const res = mockRes(); + await handler(mockReq(), res); + expect(res._body).toHaveProperty("spacecraft_missions"); + expect(res._body.spacecraft_missions).toHaveLength(64); + }); + + test("all records have valid status values", async () => { + const res = mockRes(); + await handler(mockReq(), res); + for (const r of res._body.spacecraft_missions) { + expect(VALID_STATUSES.has(r.status)).toBe(true); + } + }); + + test("all non-null orbit_type values are from known set", async () => { + const res = mockRes(); + await handler(mockReq(), res); + for (const r of res._body.spacecraft_missions) { + if (r.orbit_type !== null) { + expect(VALID_ORBIT_TYPES.has(r.orbit_type)).toBe(true); + } + } + }); + + test("all non-null launch_dates are ISO 8601 format", async () => { + const res = mockRes(); + await handler(mockReq(), res); + for (const r of res._body.spacecraft_missions) { + if (r.launch_date !== null) { + expect(r.launch_date).toMatch(ISO_DATE); + } + } + }); + + test("all non-null mass_kg values are positive numbers", async () => { + const res = mockRes(); + await handler(mockReq(), res); + for (const r of res._body.spacecraft_missions) { + if (r.mass_kg !== null) { + expect(typeof r.mass_kg).toBe("number"); + expect(r.mass_kg).toBeGreaterThan(0); + } + } + }); + + test("all non-null power_watts values are positive numbers", async () => { + const res = mockRes(); + await handler(mockReq(), res); + for (const r of res._body.spacecraft_missions) { + if (r.power_watts !== null) { + expect(typeof r.power_watts).toBe("number"); + expect(r.power_watts).toBeGreaterThan(0); + } + } + }); + + test("filters by status", async () => { + const res = mockRes(); + await handler(mockReq({ status: "active" }), res); + expect(res._body.spacecraft_missions.length).toBeGreaterThan(0); + for (const r of res._body.spacecraft_missions) { + expect(r.status).toBe("active"); + } + }); + + test("filters by orbit_type", async () => { + const res = mockRes(); + await handler(mockReq({ orbit_type: "SSO" }), res); + expect(res._body.spacecraft_missions.length).toBeGreaterThan(0); + for (const r of res._body.spacecraft_missions) { + expect(r.orbit_type).toBe("SSO"); + } + }); + + test("combined filters return intersection", async () => { + const res = mockRes(); + await handler(mockReq({ orbit_type: "GEO", status: "decommissioned" }), res); + for (const r of res._body.spacecraft_missions) { + expect(r.orbit_type).toBe("GEO"); + expect(r.status).toBe("decommissioned"); + } + }); +}); diff --git a/tests/api/spacecrafts-id.test.js b/tests/api/spacecrafts-id.test.js new file mode 100644 index 0000000..73b0f6c --- /dev/null +++ b/tests/api/spacecrafts-id.test.js @@ -0,0 +1,46 @@ +const handler = require("../../api/spacecrafts/[id]"); +const { mockReq, mockRes } = require("../helpers/mock"); + +describe("GET /api/spacecrafts/:id", () => { + test("returns the correct record for a valid ID", async () => { + const res = mockRes(); + await handler(mockReq({ id: "1" }), res); + expect(res._status).toBe(200); + expect(res._body.id).toBe(1); + expect(res._body.name).toBe("Aryabhata"); + }); + + test("returns 200 with application/json header", async () => { + const res = mockRes(); + await handler(mockReq({ id: "1" }), res); + expect(res._headers["Content-Type"]).toBe("application/json"); + }); + + test("returns 404 for non-existent ID", async () => { + const res = mockRes(); + await handler(mockReq({ id: "99999" }), res); + expect(res._status).toBe(404); + expect(res._body).toHaveProperty("error"); + }); + + test("returns 400 for non-integer ID", async () => { + const res = mockRes(); + await handler(mockReq({ id: "abc" }), res); + expect(res._status).toBe(400); + expect(res._body).toHaveProperty("error"); + }); + + test("record includes _links.self", async () => { + const res = mockRes(); + await handler(mockReq({ id: "1" }), res); + expect(res._body._links).toHaveProperty("self", "/api/spacecrafts/1"); + }); + + test("record includes _links.mission when a matching mission exists", async () => { + const res = mockRes(); + await handler(mockReq({ id: "1" }), res); + // Aryabhata has a mission record + expect(res._body._links).toHaveProperty("mission"); + expect(res._body._links.mission).toMatch(/^\/api\/spacecraft_missions\/\d+$/); + }); +}); diff --git a/tests/api/spacecrafts.test.js b/tests/api/spacecrafts.test.js new file mode 100644 index 0000000..091ce00 --- /dev/null +++ b/tests/api/spacecrafts.test.js @@ -0,0 +1,85 @@ +const handler = require("../../api/spacecrafts"); +const { mockReq, mockRes } = require("../helpers/mock"); + +describe("GET /api/spacecrafts", () => { + test("returns 200 with application/json header", async () => { + const req = mockReq(); + const res = mockRes(); + await handler(req, res); + expect(res._status).toBe(200); + expect(res._headers["Content-Type"]).toBe("application/json"); + }); + + test("response has spacecrafts wrapper key with array", async () => { + const req = mockReq(); + const res = mockRes(); + await handler(req, res); + expect(res._body).toHaveProperty("spacecrafts"); + expect(Array.isArray(res._body.spacecrafts)).toBe(true); + }); + + test("returns all 113 spacecrafts when no filters", async () => { + const req = mockReq(); + const res = mockRes(); + await handler(req, res); + expect(res._body.spacecrafts).toHaveLength(113); + }); + + test("each record has required id and name fields", async () => { + const req = mockReq(); + const res = mockRes(); + await handler(req, res); + for (const record of res._body.spacecrafts) { + expect(typeof record.id).toBe("number"); + expect(typeof record.name).toBe("string"); + expect(record.name.length).toBeGreaterThan(0); + } + }); + + test("filters by status (case-insensitive)", async () => { + const res1 = mockRes(); + await handler(mockReq({ status: "active" }), res1); + const res2 = mockRes(); + await handler(mockReq({ status: "ACTIVE" }), res2); + expect(res1._body.spacecrafts.length).toBeGreaterThan(0); + expect(res1._body.spacecrafts).toEqual(res2._body.spacecrafts); + for (const r of res1._body.spacecrafts) { + expect(r.status).toBe("active"); + } + }); + + test("filters by orbit_type", async () => { + const res = mockRes(); + await handler(mockReq({ orbit_type: "GEO" }), res); + expect(res._body.spacecrafts.length).toBeGreaterThan(0); + for (const r of res._body.spacecrafts) { + expect(r.orbit_type).toBe("GEO"); + } + }); + + test("multiple filters narrow results (AND logic)", async () => { + const resAll = mockRes(); + await handler(mockReq({ orbit_type: "GEO" }), resAll); + + const resBoth = mockRes(); + await handler(mockReq({ orbit_type: "GEO", status: "decommissioned" }), resBoth); + + expect(resBoth._body.spacecrafts.length).toBeLessThanOrEqual(resAll._body.spacecrafts.length); + for (const r of resBoth._body.spacecrafts) { + expect(r.orbit_type).toBe("GEO"); + expect(r.status).toBe("decommissioned"); + } + }); + + test("unknown filter param is ignored, returns full collection", async () => { + const res = mockRes(); + await handler(mockReq({ not_a_field: "foo" }), res); + expect(res._body.spacecrafts).toHaveLength(113); + }); + + test("filter that matches nothing returns empty array", async () => { + const res = mockRes(); + await handler(mockReq({ status: "this_does_not_exist" }), res); + expect(res._body.spacecrafts).toHaveLength(0); + }); +}); diff --git a/tests/api/stats.test.js b/tests/api/stats.test.js new file mode 100644 index 0000000..40b6923 --- /dev/null +++ b/tests/api/stats.test.js @@ -0,0 +1,75 @@ +const handler = require("../../api/stats"); +const { mockReq, mockRes } = require("../helpers/mock"); + +describe("GET /api/stats", () => { + let body; + + beforeAll(async () => { + const res = mockRes(); + await handler(mockReq(), res); + body = res._body; + }); + + test("returns 200 with application/json header", async () => { + const res = mockRes(); + await handler(mockReq(), res); + expect(res._status).toBe(200); + expect(res._headers["Content-Type"]).toBe("application/json"); + }); + + test("response has all top-level sections", () => { + expect(body).toHaveProperty("totals"); + expect(body).toHaveProperty("spacecraft_missions"); + expect(body).toHaveProperty("spacecrafts"); + expect(body).toHaveProperty("customer_satellites"); + expect(body).toHaveProperty("launchers"); + }); + + test("totals match actual collection sizes", () => { + expect(body.totals.spacecrafts).toBe(113); + expect(body.totals.launchers).toBe(81); + expect(body.totals.customer_satellites).toBe(75); + expect(body.totals.centres).toBe(44); + expect(body.totals.spacecraft_missions).toBe(64); + }); + + test("mission status counts sum to total missions", () => { + const sum = Object.values(body.spacecraft_missions.by_status).reduce((a, b) => a + b, 0); + expect(sum).toBe(body.totals.spacecraft_missions); + }); + + test("mission orbit_type counts sum to total missions", () => { + const sum = Object.values(body.spacecraft_missions.by_orbit_type).reduce((a, b) => a + b, 0); + expect(sum).toBe(body.totals.spacecraft_missions); + }); + + test("mission type counts sum to total missions", () => { + const sum = Object.values(body.spacecraft_missions.by_mission_type).reduce((a, b) => a + b, 0); + expect(sum).toBe(body.totals.spacecraft_missions); + }); + + test("spacecraft status counts sum to total spacecrafts", () => { + const sum = Object.values(body.spacecrafts.by_status).reduce((a, b) => a + b, 0); + expect(sum).toBe(body.totals.spacecrafts); + }); + + test("customer satellite country counts sum to total satellites", () => { + const sum = Object.values(body.customer_satellites.by_country).reduce((a, b) => a + b, 0); + expect(sum).toBe(body.totals.customer_satellites); + }); + + test("total_mass_kg is a positive number", () => { + expect(typeof body.customer_satellites.total_mass_kg).toBe("number"); + expect(body.customer_satellites.total_mass_kg).toBeGreaterThan(0); + }); + + test("launcher vehicle_family counts sum to total launchers", () => { + const sum = Object.values(body.launchers.by_vehicle_family).reduce((a, b) => a + b, 0); + expect(sum).toBe(body.totals.launchers); + }); + + test("known statuses present in mission breakdown", () => { + const statuses = Object.keys(body.spacecraft_missions.by_status); + expect(statuses).toEqual(expect.arrayContaining(["active", "decommissioned", "failed"])); + }); +}); diff --git a/tests/data/integrity.test.js b/tests/data/integrity.test.js new file mode 100644 index 0000000..a82b1fa --- /dev/null +++ b/tests/data/integrity.test.js @@ -0,0 +1,189 @@ +/** + * Data integrity tests — verify that the JSON data files meet + * the quality standards established by the normalization pipeline. + * These tests act as a regression guard against scraper regressions + * or manual edits that corrupt the schema. + */ + +const spacecraftsData = require("../../data/spacecrafts.json"); +const launchersData = require("../../data/launchers.json"); +const customerSatellitesData = require("../../data/customer_satellites.json"); +const centresData = require("../../data/centres.json"); +const missionsData = require("../../data/spacecraft_missions.json"); + +const ISO_DATE = /^\d{4}-\d{2}-\d{2}$/; +const VALID_STATUSES = ["active", "decommissioned", "failed", "unknown"]; +const VALID_ORBIT_TYPES = ["LEO", "SSO", "GEO", "Lunar", "Interplanetary", "Failed"]; +const VALID_VEHICLE_FAMILIES = ["SLV", "ASLV", "PSLV", "GSLV", "GSLV Mk III", "LVM-3", "RLV", "Scramjet-TD"]; + +describe("data/spacecrafts.json", () => { + const records = spacecraftsData.spacecrafts; + + test("has 113 records", () => expect(records).toHaveLength(113)); + + test("all IDs are unique positive integers", () => { + const ids = records.map((r) => r.id); + expect(new Set(ids).size).toBe(records.length); + for (const id of ids) expect(Number.isInteger(id) && id > 0).toBe(true); + }); + + test("all names are non-empty strings", () => { + for (const r of records) { + expect(typeof r.name).toBe("string"); + expect(r.name.trim().length).toBeGreaterThan(0); + } + }); + + test("no trailing whitespace in names", () => { + for (const r of records) { + expect(r.name).toBe(r.name.trim()); + } + }); + + test("non-null launch_dates are ISO 8601", () => { + for (const r of records) { + if (r.launch_date !== null) expect(r.launch_date).toMatch(ISO_DATE); + } + }); + + test("non-null mass_kg values are positive numbers", () => { + for (const r of records) { + if (r.mass_kg !== null) { + expect(typeof r.mass_kg).toBe("number"); + expect(r.mass_kg).toBeGreaterThan(0); + } + } + }); + + test("non-null status values are from known enum", () => { + for (const r of records) { + if (r.status !== null) expect(VALID_STATUSES).toContain(r.status); + } + }); + + test("non-null orbit_type values are from known enum", () => { + for (const r of records) { + if (r.orbit_type !== null) expect(VALID_ORBIT_TYPES).toContain(r.orbit_type); + } + }); +}); + +describe("data/spacecraft_missions.json", () => { + const records = missionsData.spacecraft_missions; + + test("has 64 records", () => expect(records).toHaveLength(64)); + + test("all IDs are unique positive integers", () => { + const ids = records.map((r) => r.id); + expect(new Set(ids).size).toBe(records.length); + for (const id of ids) expect(Number.isInteger(id) && id > 0).toBe(true); + }); + + test("all records have a status field from known enum", () => { + for (const r of records) { + expect(VALID_STATUSES).toContain(r.status); + } + }); + + test("non-null launch_dates are ISO 8601", () => { + for (const r of records) { + if (r.launch_date !== null) expect(r.launch_date).toMatch(ISO_DATE); + } + }); + + test("non-null orbit_type values are from known enum", () => { + for (const r of records) { + if (r.orbit_type !== null) expect(VALID_ORBIT_TYPES).toContain(r.orbit_type); + } + }); + + test("non-null mass_kg values are positive numbers", () => { + for (const r of records) { + if (r.mass_kg !== null) { + expect(typeof r.mass_kg).toBe("number"); + expect(r.mass_kg).toBeGreaterThan(0); + } + } + }); + + test("non-null power_watts values are positive numbers", () => { + for (const r of records) { + if (r.power_watts !== null) { + expect(typeof r.power_watts).toBe("number"); + expect(r.power_watts).toBeGreaterThan(0); + } + } + }); + + test("no record has values in wrong fields (mass field not a spacecraft name)", () => { + for (const r of records) { + if (r.mass_kg !== null) { + expect(typeof r.mass_kg).toBe("number"); + } + } + }); +}); + +describe("data/customer_satellites.json", () => { + const records = customerSatellitesData.customer_satellites; + + test("has 75 records", () => expect(records).toHaveLength(75)); + + test("all IDs are unique positive integers", () => { + const ids = records.map((r) => r.id); + expect(new Set(ids).size).toBe(records.length); + }); + + test("non-null launch_dates are ISO 8601", () => { + for (const r of records) { + if (r.launch_date !== null) expect(r.launch_date).toMatch(ISO_DATE); + } + }); + + test("non-null mass_kg values are positive numbers", () => { + for (const r of records) { + if (r.mass_kg !== null) { + expect(typeof r.mass_kg).toBe("number"); + expect(r.mass_kg).toBeGreaterThan(0); + } + } + }); + + test("country names are title case (not all-caps)", () => { + for (const r of records) { + if (r.country !== null) { + expect(r.country).toBe(r.country.charAt(0).toUpperCase() + r.country.slice(1)); + expect(r.country).not.toBe(r.country.toUpperCase()); + } + } + }); +}); + +describe("data/launchers.json", () => { + const records = launchersData.launchers; + + test("has 81 records", () => expect(records).toHaveLength(81)); + + test("non-null vehicle_family values are from known enum", () => { + for (const r of records) { + if (r.vehicle_family !== null) { + expect(VALID_VEHICLE_FAMILIES).toContain(r.vehicle_family); + } + } + }); +}); + +describe("data/centres.json", () => { + const records = centresData.centres; + + test("has 44 records", () => expect(records).toHaveLength(44)); + + test("all records use lowercase field names (not Place/State)", () => { + for (const r of records) { + expect(r).not.toHaveProperty("Place"); + expect(r).not.toHaveProperty("State"); + expect(r).toHaveProperty("place"); + expect(r).toHaveProperty("state"); + } + }); +}); diff --git a/tests/helpers/mock.js b/tests/helpers/mock.js new file mode 100644 index 0000000..2376413 --- /dev/null +++ b/tests/helpers/mock.js @@ -0,0 +1,31 @@ +/** + * Minimal req/res mocks for testing Vercel serverless handlers directly. + * No HTTP server needed — handlers are just async functions. + */ + +function mockReq(query = {}) { + return { query }; +} + +function mockRes() { + const res = { + _status: 200, + _body: null, + _headers: {}, + status(code) { + this._status = code; + return this; + }, + send(body) { + this._body = body; + return this; + }, + setHeader(key, val) { + this._headers[key] = val; + return this; + }, + }; + return res; +} + +module.exports = { mockReq, mockRes };