Python Geospatial Development (2010).Pdf

Total Page:16

File Type:pdf, Size:1020Kb

Python Geospatial Development (2010).Pdf Python Geospatial Development Build a complete and sophisticated mapping application from scratch using Python tools for GIS development Erik Westra BIRMINGHAM - MUMBAI Python Geospatial Development Copyright © 2010 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: December 2010 Production Reference: 1071210 Published by Packt Publishing Ltd. 32 Lincoln Road Olton Birmingham, B27 6PA, UK. ISBN 978-1-849511-54-4 www.packtpub.com Cover Image by Asher Wishkerman ([email protected]) Credits Author Editorial Team Leader Erik Westra Mithun Sehgal Reviewers Project Team Leader Tomi Juhola Priya Mukherji Silas Toms Project Coordinator Acquisition Editor Jovita Pinto Steven Wilding Proofreader Development Editor Jonathan Todd Hyacintha D'Souza Graphics Technical Editor Nilesh R. Mohite Kartikey Pandey Production Coordinator Indexers Kruthika Bangera Hemangini Bari Cover Work Tejal Daruwale Kruthika Bangera About the Author Erik Westra has been a professional software developer for over 25 years, and has worked almost exclusively in Python for the past decade. Erik's early interest in graphical user-interface design led to the development of one of the most advanced urgent courier dispatch systems used by messenger and courier companies worldwide. In recent years, Erik has been involved in the design and implementation of systems matching seekers and providers of goods and services across a range of geographical areas. This work has included the creation of real-time geocoders and map-based views of constantly changing data. Erik is based in New Zealand, and works for companies worldwide. "For Ruth, The love of my life." About the Reviewers Tomi Juhola is a software development professional from Finland. He has a wide range of development experience from embedded systems to modern distributed enterprise systems in various roles, such as tester, developer, consultant, and trainer. Currently, he works in a company called Lindorff and shares this time between development lead duties and helping other projects to adopt Scrum and agile methodologies. He likes to spend his free time with new and interesting development languages and frameworks. Silas Toms is a GIS Analyst for ICF International, working at the San Francisco and San Jose offices. His undergraduate degree is in Geography (from Humboldt State University), and he is currently finishing a thesis for an MS in GIS at San Francisco State University. He has been a GIS professional for four years, working with many local and regional governments before taking his current position. Python experience was gained through classes at SFSU and professional experience. This is the first book he has helped review. I would like to thank everyone at Packt Publishing for allowing me to help review this book and putting up with my ever-shifting schedule. I would also like to thank my family for being supportive in my quest to master this somewhat esoteric field, and for never asking if I am going to teach with this degree. www.PacktPub.com Support files, eBooks, discount offers and more You might want to visit www.PacktPub.com for support files and downloads related to your book. Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub. com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details. At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters, and receive exclusive discounts and offers on Packt books and eBooks. http://PacktLib.PacktPub.com Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can access, read, and search across Packt's entire library of books. Why Subscribe? • Fully searchable across every book published by Packt • Copy and paste, print, and bookmark content • On demand and accessible via web browser Free Access for Packt account holders If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view nine entirely free books. Simply use your login credentials for immediate access. Table of Contents Preface 1 Chapter 1: Geo-Spatial Development Using Python 7 Python 7 Geo-spatial development 9 Applications of geo-spatial development 11 Analyzing geo-spatial data 12 Visualizing geo-spatial data 13 Creating a geo-spatial mash-up 16 Recent developments 17 Summary 19 Chapter 2: GIS 21 Core GIS concepts 21 Location 22 Distance 25 Units 27 Projections 28 Cylindrical projections 29 Conic projections 31 Azimuthal projections 31 The nature of map projections 32 Coordinate systems 32 Datums 35 Shapes 36 GIS data formats 37 Working with GIS data manually 39 Summary 46 Table of Contents Chapter 3: Python Libraries for Geo-Spatial Development 47 Reading and writing geo-spatial data 47 GDAL/OGR 48 GDAL design 48 GDAL example code 50 OGR design 51 OGR example code 52 Documentation 53 Availability 53 Dealing with projections 54 pyproj 54 Design 54 Proj 55 Geod 56 Example code 57 Documentation 58 Availability 58 Analyzing and manipulating geo-spatial data 59 Shapely 59 Design 60 Example code 61 Documentation 62 Availability 62 Visualizing geo-spatial data 63 Mapnik 63 Design 64 Example code 66 Documentation 67 Availability 68 Summary 68 Chapter 4: Sources of Geo-Spatial Data 71 Sources of geo-spatial data in vector format 72 OpenStreetMap 72 Data format 73 Obtaining and using OpenStreetMap data 74 TIGER 76 Data format 77 Obtaining and using TIGER data 78 Digital Chart of the World 79 Data format 80 Available layers 80 Obtaining and using DCW data 80 [ ii ] Table of Contents GSHHS 82 Data format 83 Obtaining the GSHHS database 84 World Borders Dataset 84 Data format 85 Obtaining the World Borders Dataset 85 Sources of geo-spatial data in raster format 85 Landsat 86 Data format 86 Obtaining Landsat imagery 87 GLOBE 90 Data format 90 Obtaining and using GLOBE data 91 National Elevation Dataset 92 Data format 92 Obtaining and using NED data 93 Sources of other types of geo-spatial data 94 GEOnet Names Server 94 Data format 95 Obtaining and using GEOnet Names Server data 95 GNIS 96 Data format 97 Obtaining and using GNIS data 97 Summary 98 Chapter 5: Working with Geo-Spatial Data in Python 101 Prerequisites 101 Reading and writing geo-spatial data 102 Task: Calculate the bounding box for each country in the world 102 Task: Save the country bounding boxes into a Shapefile 104 Task: Analyze height data using a digital elevation map 108 Changing datums and projections 115 Task: Change projections to combine Shapefiles using geographic and UTM coordinates 115 Task: Change datums to allow older and newer TIGER data to be combined 119 Representing and storing geo-spatial data 122 Task: Calculate the border between Thailand and Myanmar 123 Task: Save geometries into a text file 126 Working with Shapely geometries 127 Task: Identify parks in or near urban areas 128 Converting and standardizing units of geometry and distance 132 Task: Calculate the length of the Thai-Myanmar border 133 Task: Find a point 132.7 kilometers west of Soshone, California 139 [ iii ] Table of Contents Exercises 141 Summary 143 Chapter 6: GIS in the Database 145 Spatially-enabled databases 145 Spatial indexes 146 Open source spatially-enabled databases 149 MySQL 149 PostGIS 152 Installing and configuring PostGIS 152 Using PostGIS 155 Documentation 157 Advanced PostGIS features 157 SpatiaLite 158 Installing SpatiaLite 158 Installing pysqlite 159 Accessing SpatiaLite from Python 160 Documentation 160 Using SpatiaLite 161 SpatiaLite capabilities 163 Commercial spatially-enabled databases 164 Oracle 164 MS SQL Server 165 Recommended best practices 165 Use the database to keep track of spatial references 166 Use the appropriate spatial reference for your data 168 Option 1: Use a database that supports geographies 169 Option 2: Transform features as required 169 Option 3: Transform features from the outset 169 When to use unprojected coordinates 170 Avoid on-the-fly transformations within a query 170 Don't create geometries within a query 171 Use spatial indexes appropriately 172 Know the limits of your database's query optimizer 173 MySQL 174 PostGIS 175 SpatiaLite 177 Working with geo-spatial databases using Python 178 Prerequisites 179 Working with MySQL 179 Working with PostGIS 182 Working with SpatiaLite 184 Speed comparisons 188 Summary 189 [ iv ] Table of Contents Chapter 7: Working with Spatial Data 191 About DISTAL 191 Designing and building the database 195 Downloading the data 199 World Borders Dataset
Recommended publications
  • Pyqgis Developer Cookbook Release 2.18
    PyQGIS developer cookbook Release 2.18 QGIS Project April 08, 2019 Contents 1 Introduction 1 1.1 Run Python code when QGIS starts.................................1 1.2 Python Console............................................2 1.3 Python Plugins............................................3 1.4 Python Applications.........................................3 2 Loading Projects 7 3 Loading Layers 9 3.1 Vector Layers.............................................9 3.2 Raster Layers............................................. 11 3.3 Map Layer Registry......................................... 11 4 Using Raster Layers 13 4.1 Layer Details............................................. 13 4.2 Renderer............................................... 13 4.3 Refreshing Layers.......................................... 15 4.4 Query Values............................................. 15 5 Using Vector Layers 17 5.1 Retrieving information about attributes............................... 17 5.2 Selecting features........................................... 18 5.3 Iterating over Vector Layer...................................... 18 5.4 Modifying Vector Layers....................................... 20 5.5 Modifying Vector Layers with an Editing Buffer.......................... 22 5.6 Using Spatial Index......................................... 23 5.7 Writing Vector Layers........................................ 23 5.8 Memory Provider........................................... 24 5.9 Appearance (Symbology) of Vector Layers............................. 26 5.10 Further
    [Show full text]
  • Pylons Reference Documentation Release 1.0.2
    Pylons Reference Documentation Release 1.0.2 Ben Bangert, Graham Higgins, James Gardner, Philip Jenvey January 12, 2018 Contents 1 Getting Started 1 1.1 Requirements...............................................1 1.2 Installing.................................................1 1.3 Creating a Pylons Project........................................3 1.4 Running the application.........................................4 1.5 Hello World...............................................4 2 Concepts of Pylons 7 2.1 The ‘Why’ of a Pylons Project......................................7 2.2 WSGI Applications...........................................8 2.3 WSGI Middleware............................................8 2.4 Controller Dispatch........................................... 10 2.5 Paster................................................... 10 2.6 Loading the Application......................................... 11 3 Controllers 13 3.1 Standard Controllers........................................... 14 3.2 Using the WSGI Controller to provide a WSGI service......................... 16 3.3 Using the REST Controller with a RESTful API............................ 17 3.4 Using the XML-RPC Controller for XML-RPC requests........................ 20 4 Views 23 4.1 Templates................................................. 24 4.2 Passing Variables to Templates...................................... 24 4.3 Default Template Variables....................................... 25 4.4 Configuring Template Engines...................................... 26 4.5 Custom
    [Show full text]
  • “Web Development Using Python” 01 April 2021
    A Report on the Webinar “Web development using Python” 01 April 2021 Organized by ‘Anacron’, Students association of the Department of Computer Science and Engineering, Akshaya College of Engineering and Technology A webinar, “Web development using Python” was organized by the students’ association, ‘Anacron’ of the department of Computer Science and Engineering, on 1-4-21. A brief report of the same is given below. WELCOME ADDRESS: Welcome address was given by Dr. N. Rajkumar, HOD/CSE, ACET. INTRODUCTION OF CHIEF GUEST Ms. J. Rajichellam completed her UG degree B.E CSE in Madurai Institute of Engineering and Technology. She is having certificates of proficiency in C, C++, HTML5, CSS, Javascript, Jquery, etc.,. She is having more than 6 years of industrial experience and currently working as Technical trainer in Elysium Academy. CHIEF GUEST PRESENTATION: Ms. J. Rajichellam started her presentation with a brief note about the future for Web development using python and then explained about the career opportunities in Python. She also explained as to why students should be well versed in python. She also urged the students to have a goal for their career and for that they should envisage a plan. She opined that without a plan they can’t achieve success. She said, Web development is an umbrella term for conceptualizing, creating, deploying and operating web applications and application programming interfaces for the web. She basically gave explanation for three topics. 1. Why is web development important? The web has grown a mindboggling amount in the number of sites, users and implementation capabilities since the first website went live in 1989.
    [Show full text]
  • A Language for Functional Web Programming
    A language for functional web programming Bachelor of Science thesis Anton Ekblad University of Gothenburg Chalmers University of Technology Department of Computer Science and Engineering Göteborg, Sweden, October 2011 The Author grants to Chalmers University of Technology and University of Gothenburg the non-exclusive right to publish the Work electronically and in a non-commercial purpose make it accessible on the Internet. The Author warrants that he/she is the author to the Work, and warrants that the Work does not contain text, pictures or other material that violates copyright law. The Author shall, when transferring the rights of the Work to a third party (for example a publisher or a company), acknowledge the third party about this agreement. If the Author has signed a copyright agreement with a third party regarding the Work, the Author warrants hereby that he/she has ob- tained any necessary permission from this third party to let Chalmers Uni- versity of Technology and University of Gothenburg store the Work electron- ically and make it accessible on the Internet. A language for functional web programming Anton Ekblad © Anton Ekblad, October 2011. Examiner: Koen Lindström Claessen University of Gothenburg Chalmers University of Technology Department of Computer Science and Engineering SE-412 96 Göteborg Sweden Telephone + 46 (0)31-772 1000 Department of Computer Science and Engineering Göteborg, Sweden October 2011 Abstract Computer programs are by far the most complex artifacts ever produced by humanity, and they get more complex year by year. As complexity grows, so does the need for better tools and higher level abstractions.
    [Show full text]
  • Spatialist Documentation
    spatialist Documentation John Truckenbrodt, Felix Cremer, Ismail Baris Jul 17, 2020 Contents 1 Installation 1 1.1 Installation of dependencies.......................................1 1.2 Installation of spatialist..........................................2 2 API Documentation 3 2.1 Raster Class...............................................3 2.2 Raster Tools...............................................8 2.3 Vector Class............................................... 12 2.4 Vector Tools............................................... 16 2.5 General Spatial Tools........................................... 18 2.6 Database Tools.............................................. 21 2.7 Ancillary Functions........................................... 21 2.8 ENVI HDR file manipulation...................................... 24 2.9 Data Exploration............................................. 25 3 Some general examples 27 3.1 in-memory vector object rasterization.................................. 27 4 Changelog 29 4.1 v0.4.................................................... 29 4.2 v0.5.................................................... 29 4.3 v0.6.................................................... 30 5 Indices and tables 31 Python Module Index 33 Index 35 i ii CHAPTER 1 Installation The most convenient way to install spatialist is by using conda: conda install --channel conda-forge spatialist See below for more detailed Linux installation instructions outside of the Anaconda framework. 1.1 Installation of dependencies 1.1.1 GDAL spatialist requires
    [Show full text]
  • Geoserver, the Open Source Server for Interoperable Spatial Data Handling
    GeoServer, the open source server for interoperable spatial data handling Ing. Simone Giannecchini, GeoSolutions Ing. Andrea Aime, GeoSolutions Outline Who is GeoSolutions? Quick intro to GeoServer What’s new in the 2.2.x series What’s new in the 2.3.x series What’s cooking for the 2.4.x series GeoSolutions Founded in Italy in late 2006 Expertise • Image Processing, GeoSpatial Data Fusion • Java, Java Enterprise, C++, Python • JPEG2000, JPIP, Advanced 2D visualization Supporting/Developing FOSS4G projects GeoTools, GeoServer GeoNetwork, GeoBatch, MapStore ImageIO-Ext and more: https://github.com/geosolutions-it Focus on Consultancy PAs, NGOs, private companies, etc… GeoServer quick intro GeoServer GeoSpatial enterprise gateway − Java Enterprise − Management and Dissemination of raster and vector data Standards compliant − OGC WCS 1.0, 1.1.1 (RI), 2.0 in the pipeline − OGC WFS 1.0, 1.1 (RI), 2.0 − OGC WMS 1.1.1, 1.3 − OGC WPS 1.0.0 Google Earth/Maps support − KML, GeoSearch, etc.. ---------- -------------------- PNG, GIF ------------------- Shapefile ------------------- WMS JPEG ---------- 1.1.1 TIFF, 1.3.0 Vector files GeoTIFF PostGIS SVG, PDF Oracle Styled KML/KMZ H2 Google maps DB2 SQL Server Shapefile MySql WFS GML2 Spatialite 1.0, 1.1, GML3 GeoCouch DBMS GeoRSS 2.0 Raw vector data GeoJSON CSV/XLS ArcSDE WPS WFS 1.0.0 GeoServer GeoServer GeoTIFF Servers WCS ArcGrid GeoTIFF 1.0,1.1.1 GTopo30 WMS 2.0.1 Raw raster Img+World ArcGrid data GTopo30 GWC Formats and Protocols and Formats Img+world (WMTS, KML superoverlays Mosaic Raster files TMS, Google maps tiles MrSID WMS-C) OGC tiles JPEG 2000 ECW,Pyramid, Oracle GeoRaster, PostGis Raster OSGEO tiles Administration GUI RESTful Configuration Programmatic configuration of layers via REST calls − Workspaces, Data stores / coverage stores − Layers and Styles, Service configurations − Freemarker templates (incoming) Exposing internal configuration to remote clients − Ajax - JavaScript friendly Various client libraries available in different languages (Java, Python, Ruby, …).
    [Show full text]
  • The Pyramid Web Application Development Framework Version 1.1
    The Pyramid Web Application Development Framework Version 1.1 Chris McDonough CONTENTS Front Matteri Copyright, Trademarks, and Attributions iii Attributions............................................ iv Print Production.......................................... iv Contacting The Publisher..................................... iv HTML Version and Source Code................................. iv Typographical Conventionsv Author Introduction vii Audience............................................. vii Book Content........................................... viii The Genesis of repoze.bfg .................................. viii The Genesis of Pyramid...................................... ix Thanks............................................... ix I Narrative Documentation1 1 Pyramid Introduction3 1.1 What Is The Pylons Project?................................4 1.2 Pyramid and Other Web Frameworks............................4 2 Installing Pyramid7 2.1 Before You Install......................................7 2.1.1 If You Don’t Yet Have A Python Interpreter (UNIX)...............7 2.1.2 If You Don’t Yet Have A Python Interpreter (Windows)..............9 2.2 Installing Pyramid on a UNIX System...........................9 2.2.1 Installing the virtualenv Package....................... 10 2.2.2 Creating the Virtual Python Environment..................... 10 2.2.3 Installing Pyramid Into the Virtual Python Environment............. 11 2.3 Installing Pyramid on a Windows System......................... 11 2.4 Installing Pyramid on Google App Engine........................
    [Show full text]
  • Spatial Data Studio Ltom.02.011 Interoperabilty & Webgis
    SPATIAL DATA STUDIO LTOM.02.011 INTEROPERABILTY & WEBGIS Alexander Kmoch DATA INTEROPERABILITY • Introduction & Motivation • Service Orientied Architecture • Spatial Data Infrastructure • Open Geospatial Consortium INTRODUCTION & MOTIVATION ● Spatial Information and its role in taking informed decision making ● Spatial data transfer ● Web services ● Open GIS vs. Open Source The Network is the Computer (* (* John Gage, 1984 SPATIAL INFORMATION AND TECHNOLOGIES SPATIAL DATA TRANSFER: FROM CLASSIC PAPER MAPS TO WEB SERVICES Web Services Online download (FTP) Offline copy (CD/DVD) Print Copy (paper maps) Source: Fu and Sun, 2011 WEB SERVICES ● “A Web Service is a software system designed to support interoperable machine-to-machine interaction over a network” (W3C, 2004) ● Interface to application functionality accessible through a network ● Intermediary between data/applications and users WEB SERVICES FUNCTIONALITY Web Client File data Send Request Desktop Client Send response Mobile Client geodatabase FUNCTIONALITIES OF THE GEOSPATIAL WEB SERVICES ● Map services: display an image of the spatial data, but not the raw data ● Data services: ● Editing services: create, retrieve, update and delete the geo-data online; e.g. OSM mapping capabilities ● Search services: INSPIRE Geoportal ● Analytical services ● Geocoding services: transforming the addresses into X,Y coordinates ● Network analysis services: e.g. finding the shortest path/route between two locations: A and B ● Geoprocessing services: mapping the crime hotspots using a GIS tool that
    [Show full text]
  • Fonafifo Geographic Information System Needs Assessment
    FONAFIFO GEOGRAPHIC INFORMATION SYSTEM NEEDS ASSESSMENT Submitted by: Richard J. Kotapish, GISP GISCorps Volunteer July 4, 2017 [Type here] TABLE OF CONTENTS Section Description Page Section 1: Introduction 3 Section 2: Existing Conditions Introduction and history 6 Software 7 Hardware 10 Network 13 GIS Data and GAP Analysis 14 Section 3: Department of Monitoring and Control Workflows Introduction 16 FONAFIFO PSA Workflows 16 Key Documents and Processes 17 Section 4: System Architecture / Technology Options Introduction 23 GIS Software Infrastructure: 23 Open Source, Esri and Cloud-based Considerations - GIS Software and Analysis Tools 26 Hardware Options 29 Unmanned Aerial Systems (UAS, UAV, Drones) 31 Remote Sensing 34 Metadata 34 Section 5: Costs, Benefits & Recommendations Introduction 36 Esri based solutions 36 Open Source GIS software 41 Mobile hardware solutions 42 Servers 42 UAS solutions 43 Shifted PSA Parcel Polygons 43 General Observations 45 Section 6: Next Steps Introduction 46 Task Series 46 Appendix “A” - Prioritized GIS Layers 49 Appendix “B” - Hardware Specifications 50 List of Figures Figure 1 - Existing FONAFIFO Operational Environment 14 Figure 2 - Simplified Geospatial Data Diagram 17 Figure 3 – PSA Application Workflow 19 Figure 4 – PSA Approval Process Workflow 19 Figure 5 - FONAFIFO Functional Environment 22 2 SECTION 1 INTRODUCTION 1.1 INTRODUCTION This GIS Needs Assessment Report is respectfully offered to the National Government of Costa Rica. This report provides various recommendations regarding the current and future use of Geographic Information System (GIS) technologies within the National Forestry Financing Fund (FONAFIFO). This GIS Needs Assessment Report is intended for your use in exploring new strategic directions for your GIS program.
    [Show full text]
  • RDF-REST: a Unifying Framework for Web Apis and Linked Data Pierre-Antoine Champin
    RDF-REST: A Unifying Framework for Web APIs and Linked Data Pierre-Antoine Champin To cite this version: Pierre-Antoine Champin. RDF-REST: A Unifying Framework for Web APIs and Linked Data. Ser- vices and Applications over Linked APIs and Data (SALAD), workshop at ESWC, May 2013, Mont- pellier (FR), France. pp.10-19. hal-00921662 HAL Id: hal-00921662 https://hal.archives-ouvertes.fr/hal-00921662 Submitted on 20 Dec 2013 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. RDF-REST: A Unifying Framework for Web APIs and Linked Data Pierre-Antoine Champin ⋆⋆ LIRIS , Universit´eClaude Bernard Lyon 1, [email protected], Abstract. There has been a lot of efforts to bridge the gap between web APIs and linked data. The RDF-REST framework, that we developed in the process of building a RESTful service using linked data, is part of them. This paper presents the approach adopted in the RDF-REST framework, and show its benefits in the design and use of web APIs. One of these benefits is an easy integration of existing APIs with each other and with linked data.
    [Show full text]
  • The Jumpgate Definitive Guide
    THE JUMPGATE DEFINITIVE GUIDE Compiled by: Odiche Special Thanks to: NETDEVIL© NewDawn IkeProf RazorKiss Lady Dracoe SpaceDrake Zalty’s And all the Pilots I have forgotten to thank! FACTIONS Solrain: Medium-fast ships, heavy, fast-recharging shields. A little light on firepower, lots of flexibility in ship loadout because of a large number of MODx slots. (MODx are worth reading up on in JOSSH). All Solrain ships have buckets of cargo space... the Solrain Fighter-class ship, the Intensity can carry a full set of equipment in it's hold to re-equip a downed squadmate. The Solrain Bomber and Medium Fighter are top-of-the-line, and they have a good Light Transport as well. Solrain ships are fairly forgiving for a new pilot; the glut of Flashfire MODxes they can equip can ensure their survival in situations where any other ship would be gunned down before it could escape. Solrain ships often utilize hit and run techniques in combat to gain the maximum advantage from their fast-recharging shields. Solrain ships can generally re-equip to a fairly good degree from their home stations. Solrain are typically RPed (Roleplayed) as greedy, profiteering traders. Which they are. Assassins, Mercenaries, Pirates, Traders, or Factionalists. To piss off a Solrain pilot, call him a Smurf. Quantar: Usually have the fastest ships in a given class. They also have a medium load- out of MODx slots. Quantar ships rely on maneuvrability to evade incoming fire; the Quantar fighters, the Typhoon, is an ideal wolf-pack ship. Their speed can carry them out of most trouble; only scouts or an Intensity can really catch them up, and if you are a skilled pilot, you can evade and escape from those also.
    [Show full text]
  • Comparative Study on Python Web Frameworks: Flask and Django
    Devndra Ghimire Comparative study on Python web frameworks: Flask and Django Metropolia University of Applied Sciences Bachelor of Engineering Media Engineering Bachelor’s Thesis 5 May 2020 Abstract Devndra Ghimire Author(s) Comparative study on Python web frameworks: Flask and Title Django. Number of Pages 37 pages + 0 appendices Date 5 May 2010 Degree Bachelor of Engineering Degree Programme Media Engineering Specialisation option Software Engineering Instructor(s) Kari Salo, Senior Lecturer The purpose of the thesis was to the study the various features, advantages, and the limita- tion of two web development frameworks for Python programming language. It aims to com- pare the usage of Django and Flask frameworks from a novice point of view. The theoretical part of the thesis presents the various types of programming languages and web technolo- gies. In the practical part, however, the study is divided into two parts, each part observing the respective web application framework. In order to perform the comparison, a social network and eCommerce like application was built for Flask and Django respectively. The comparison was started by developing the social network application first with Flask and finished with the e-commerce application using Django. Python programing language, SQLite database for the backend and HTML, JavaS- cript, and Ajax were used for the frontend technology. At the end of the project, both appli- cations were deployed to the cloud platform called Heroku. After the comparison, it was found that the most significant advantages of Flask were that it provides simplicity, flexibility, fine-grained control and quick and easy to learn. On the other hand, Django was easy to work with because of its extensive features and support for librar- ies.
    [Show full text]