SciPy.in 2012 Conference Schedule

TUTORIALS

DAY 1 - Thursday, 27th December 2012

Time Speaker Detail
8:30 - 9:30 Registration
9:30 - 11:00 Puneeth Chaganti, Prashant Basic Python, IPython, numpy, scipy, matplotlib
11:00 - 11:30 Tea break
11:30 - 13:00 Puneeth Chaganti, Prashant Basic Python, IPython, numpy, scipy, matplotlib
13:00 - 14:00 Lunch
14:00 - 15:00 Prabhu Ramachandran Basic 3D viz with Mayavi
15:00 - 16:00 Ole Nielsen Geoprocessing with Python
16:00 - 16:30 Tea break
16:30 - 17:30 Ole Nielsen Geoprocessing with Python
End of DAY 1

TUTORIALS

DAY 2 - Friday, 28th December 2012

Time Speaker Detail
8:30 - 9:00 Registration
9:00 - 11:00Ajith Kumar Python for experiments in Physics
11:00 - 11:30Tea Break
11:30 - 1:00 Prabhu Ramachandran/Puneeth ETS Intro/Cython?
13:00 - 14:00 Lunch

TALKS

DAY 2 - Friday, 28th December 2012

Time Speaker Detail
14:00 - 14:15 Prabhu Ramachandran Inauguration
14:15 - 15:15 Ole Nielsen Keynote
15:15 - 15:45 Tea break
15:45 - 16:00 N.K. Sinha Special Session
16:00 - 16:20 Kannan Moudgalya NME ICT talk
16:20 - 17:00 Srikant and Sachin Akash and Python: Py in the Sky
17:00 - 17:20 Saket Choudhary Scilab on Cloud
17:20 - 17:30 Ole Nielsen Closing
End of DAY 2

TALKS

DAY 3 - Saturday, 29th December 2012

Time Speaker Detail
9:00 - 9:15 Jarrod Millman Inauguration
9:15 - 10:15 Ajith Kumar expEYES
10:15 - 10:45 Tea break
10:45 - 11:20 Ami Tavory Scientific Data Analysis Pipelines: Push, Pull, React, Or Schedule
11:20 - 11:40 Ambuja Salgaonkar et al. SCRABLELIGHT: AN EDUCATIONAL GAME, DEVELOPED IN PYTHON
11:40 - 12:10 Jaidev Deshpande Time-Frequency Analysis with Python
12:10 - 12:35 Prasanta Mohapatra et al. OCAMSS– An Open source Platform for Multidisciplinary Structural Sizing of Composite Aircraft Wing.
12:35 - 13:00 Priyank Tiwari Free chemical process simulator toolkit using SciPy
13:00 - 14:00 Lunch
14:00 - 14:20 Madhu Sharma Python based implementation of a chaos based cryptosystem using external key
14:20 - 14:53 Multiple talks - Pecha Kucha StylePecha Kucha style
15:00 - 15:20 Samarth Shah Raspberry Pi and Scientific Computing
15:20 - 15:50 Tea break
15:50 - 16:10 Kunal Puri Wrapping Zoltan with Cython
16:10 - 16:30 Rupak Rokade SBHS Virtual Labs using Python
16:30 - 16:50 Krishnakant Mane Python as the first language
16:50 - 17:10 Krishnakant Mane GNUKhata a case study for Python developers
17:10 - 17:20 Abdulmajid Ansari Enhancing Open Source Blender 3D for Structural Analysis Using Python Tool
17:20 - 17:30 Abdulmajid Ansari Free 3D Jewelry Modeling Software using Python Scripting Tool in Blender

Tutorial Coverage

Intended audience

This conference is targeted at anyone who uses Python for work in science/engineering/technology/education. This includes college and university teachers/professors/lecturers from any Engineering or Science domain, students of engineering/science/education who would like to use Python for their basic computing and plotting needs, researchers who use or would like to use Python for their research, and corporate users of Python for scientific computing.

Prerequisites


Talk Coverage


Saket Choudhary: Scilab on Cloud

back to top

Abstract

Scilab on Cloud is essentially a Django(Python based MVC Framework) based application , that provides user with a frontend to write Scilab codes. These codes are then submitted to the Scilab Engine in the background and the results are then displayed back on the browser. One of the biggest challenge was to provide users with the graphs as generated from the scilab code. We achieved this by ‘subprocessing’ Scilab and passing a few extra parameters to come with Scilab based plots. Though the essential computational engine is of Scilab, the server and frontend are all Python powered ! Scilab on Cloud has been integrated with The TextBook Companion Project(An MHRD Initiative).The Textbook Companion Project aims to port worked out examples (and optionally, select exercise problems) from standard textbooks using an open source software system, such as Scilab. Any "standard" textbook can be used for this purpose. Scilab on Cloud enables the users to run these sample codes directly off their browsers, thus removing the hassle of installing Scilab natively and providing them a live ‘Sandbox’ for testing

Ami Tavory: Scientific Data Analysis Pipelines: Push, Pull, React, Or Schedule

back to top

Abstract

Scientific data processing pipelines can be a useful complement to Python data analysis libraries. Once data has been assembled, there are many tools for analysing and mining it, plotting it, and so forth. As part of the entire data analysis process, though, we might want to perform extremely quick preliminary analysis (e.g., see if two variables are even correlated), assemble data originating from different-format files, or aggregate data without assembling it entirely at all (e.g., just find the mean and standard deviation of some variable). Pipelines are a natural way to express such tasks. However, which underlying mechanism should drive the pipeline stages? Python provides four alternatives: push-style coroutines, pull-style generators, react-style classes, and schedule-style trampolines. Typically, scientific data processing pipelines need to handle large datasets with low memory footprint, their stages have low processing to relay ratio, and the stages are stateful and unsynchronized. We will further see that in order for such pipelines to be useful, they must support a DAG (Directed Acyclic Graph) topology (i.e., stages need both the ability to broadcast their results to multiple following stages, and the ability to combine results from multiple previous stages). This talk will focus on the trade-offs between these four mechanisms for driving DAG-topology pipelines under the typical usage scenarios. We will see why the push-style solution is the most fitting in this case.

Ambuja Salgaonkar et al.: SCRABLELIGHT - AN EDUCATIONAL GAME, DEVELOPED IN PYTHON

back to top

Abstract

It is a software form of an educational game, developed by students of University of Mumbai as their M.Sc. (CS) degree project. The initial motivation was to learn Python programming by solving an assignment of localization of the world’s popular word game—Scrabble.

(Popularity of Scrabble in the players of various age groups has been increasing since its inception that dates back to 1938. The game has been available in international versions, video and web versions. Also there has been a computer player of this game. Aksharit is an attempt to bring Scrabble in Indian languages, Hindi and other 10 including Marathi. Scrabble has been standardized by the volunteered communities. There has been a patent for modification in the game apparatus that facilitates comfort to the players in making decision. Variants of Scrabble are equally popular. Scrabble Sprint expects you to fill the tiles from upper left to right bottom corner and counts your score based on your speed of articulating the correct words, Happy Words gives you the best scoring word that suits to your situation and numeric versions namely Nummerabble or Numble are to name a few).

Scrablelight has been developed using Python 2.6 (pygame) on Ubuntu 10.04 and MySQL 5.1 database. Pyscrabble has been studied while writing its code. Scrablelight is much more than an aid that helps the player to develop vocabulary. Board size, language and the complexity level is user controlled. Given these parameters, a pre-processing module takes care of defining a tiles’ configuration by employing the rules that have been formulated out of our experiments in text mining. In order to use the board more productively the word making rules of Scrabble are extended to the creation of higher order language structures like part of a sentence. In the place of dictionary, Scrablelight employs corpora as a language resource to validate the player’s articulations in such cases.

(A mind map is method of recording knowledge and model systems, history of learning, thinking and problem solving, which has been used by educators, engineers and many others. Often it is created around a single word or text. The ideas, words and concepts are inserted around it by means of long and short branches where the distance indicates the intensity of association). We claim, replacing the dictionary by a Wordnet like language resource, the Scrablelight framework could be used as a video game for developing mind maps. The rules for granting the score would be based upon the associative distance between the adjacent existing and the newly proposed words.

Proof-of-concept version of Scrabellight has been developed for Marathi users. Synset creation for employing the same as a mind-mapping game is in process. Scrablelight has an option of randomly generating the weights of the board positions. It prohibits the user from by hearting set of moves and encourages thinking a fresh for making optimal combinations.

Jaidev Deshpande: Time-Frequency Analysis with Python

back to top

Abstract

This is a sequel to my talk at SciPy India 2011 - “pyhht: A Python Toolbox for the Hilbert Huang Transfrom” (http://goo.gl/uswB7). The talk led to many interesting discussions on blogs and the scipy-dev mailing list about the signal processing capabilities of the scipy ecosystem. The pyhht project itself has come a long way from a simple barebones implementation to a sophisticated module with feaures for nonlinear and nonstationary time-series analysis and visualization.

The first couple of minutes of the talk (not more than a slide) will be a summary of the signal processing features that developers and users would like to see in Python, and which of these are immediately doable. The focus of the talk, however, is time-frequency analysis. We will examine time and frequency characteristics of speech recordings and see where conventional signal processing tools in Python fall short. We will be able to see that time-frequency analysis is a central problem in signal processing and provides a clear motivation for a signal processing stack in any programming language.

Examining both time and frequency characteristics of a dataset is difficult for a number of reasons, mostly because conventional processing tools like Fourier and Wavelet work on tradeoffs between the time and frequency resolution obtained through a signal. Adjusting these tradeoffs is a cornerstone of time-frequency analysis. We will have a preliminary look at the mathematical problems associated with these tradeoffs, which can be conveniently expressed as numerical optimization problems in numpy. While numpy and scipy (and some scikits) have a wide variety of linear transforms, many routine functions in time-frequency analysis like the Wigner-ville distribution, or the short-time Fourier transform are not present. We will see how these distributions can be obtained by application of the Hilbert-Huang transform.

The talk will also feature some interactive time-frequency applications built using the Enthought tool suite. Although the methods that fall under time-frequency analysis are vast, most of them have a lot of common numerical procedures. This enables us to make basic time-frequency plotting applications using the ETS which can be extended and made more elaborate on demand to suit specific requirements. Particularly, we will be able to harness the interactive abilities of Chaco and Enaml in order to make time-frequency plots richer and more detailed.

Prasanta Mohapatra: OCAMSS– An Open source Platform for Multidisciplinary Structural Sizing of Composite Aircraft Wing.

back to top

Abstract

The OCAMSS platform is designed as a set of Core modules; and a versatile API (Application Pro- gramming Interface) to create Framework dependent Dynamic modules (Analysis modules, Data manager modules etc.) and to extend Core modules. Frameworks to perform a sizing procedure can differ at various levels, e.g. finite element modelling (element type), optimization variables, the con- straints to be applied, mode of application of loads, load cases etc.

Python has great potential and advantages in designing an Open Source Multidisciplinary suite and is chosen as the primary programming language to build OCAMSS. The cross platform capability, CSS similar style-sheet, GUI based designer(Qt Designer) and huge learning resources of PyQt GUI framework makes it an obvious choice for OCAMSS GUI, which can be easily customized and extend- ed. OCAMSS modules are divided into the Core modules and the framework dependent Dynamic modules. The Core modules comprise of, the CAD builder module powered by SALOME platform with few base wing configurations for various categories of aircraft; the Finite element meshing module, powered by SALOME platform; the executive module containing the Improved Genetic Al- gorithm based optimization module and a Guidance module to support the user during the sizing procedure; and the VTK powered Post processing module.

The most important feature of the OCAMSS platform is an extensive yet simple Python API. The Py- thon API will allow the creation of the framework specific dynamic modules wrapping external codes having custom requirements, setting up of the Data manger modules, to control every other non- core module and to extend the core modules.

Priyank Tiwari: Free chemical process simulator toolkit using SciPy

back to top

Abstract

Process simulation is an important tool for any chemical process design. There are several professional simulators on the market among which the most prominent are AspenPlus, Hysys and ProII: all of which are widely used in the industry. There exists, however, a need for a free and open source process simulation toolkit that will allow young engineers and entrepreneurs to quickly and reliably evaluate standard as well and non-conventional and innovative solutions to problems faced by a rapidly industrializing society.

We have already begun assembling such a toolkit using the power of the SciPy/NumPy libraries. We are able to provide the user with tools to calculate thermodynamic properties of pure components and mixtures using data from the widely available Perry’s Handbook of Chemical Engineers. We expressly intend to add detailed docstrings to our modules so as to educate the user in the best practices in the chemical process industry. An important feature of all our code is that the user input is via Excel worksheets (rather than text files) for which we employ the xlrd, xlwt and xlutils libraries.

In this session we will demonstrate how we have used the power of Python and SciPy to write clear, maintainable, extensible code to solve common process engineering problems including calculating vapour liquid and liquid liquid equilibria and exergies of mixtures.

Madhu Sharma: Python based implementation of a chaos based cryptosystem using external key

back to top

Abstract

In the present information age, there is an ever increasing trend towards virtualization of various valuable transactables like information, education & money. This necessitates a continuous research towards newer cryptographic implementations. Several cryptographic systems are now being proposed which are based purely on chaotic maps. With the aim of simplifying both the research as well as the common use of these newer chaos-based cryptographic schemes, the present work proposes a Python based implementation of a recently proposed cryptographic scheme. The cryptosystem takes as input a 64-bit key and a plain-text file (of any type, for e.g. pdf, jpg or doc) and converts it into a cipher-test file of same as the input plain-text file. The conversion, during encryption as well as during decryption, makes use of two skew tent maps as a source of introducing cryptographic confusion and diffusion. The proposed Python based cryptosystem makes use of gmpy and mpmath for doing multiprecision arithmetic. Matplotlib based graphical visualizations are used to display the quality of the cryptosystem. To make the use of Python particularly significant, the present work introduces some additional security features into the originally proposed method.

Samarth Shah: Raspberry Pi and Scientific Computing

back to top

Abstract

A small, credit card sized ARM based computer, Raspberry Pi has seen tremendous response from developers all across the world. This talk is divided in two parts:  
1. Raspberry Pi: Getting Started with Python and tools In first part I will brief about raspberry pi, its features and will discuss how scientific computation can be done using small raspberry pi.I will also discuss what tools are needed for the same. It is followed by examples in key area like data processing.
2. Controlling external device using Raspberry Pi and Python
In second part of the presentation I will talk about one specific project. Data is entered by user and the complex processing (project specific) is done by python. Based on the result given by python code Raspberry Input/output ports can be controlled to control specific device connected to it.

Kunal R. Puri: Wrapping Zoltan with Cython

back to top

Abstract

We demonstrate the use of Cython as a wrapping tool for external C/C++ code to be used within Python. The Zoltan data management library is used as a prototypical code which implements geometric and graph parti- tioning algorithms which are used in Lagrangian CFD simulations. As an example application, we evaluate the feasibility of different load balancing algorithms for their use with the Smooth Particle Hydrodynamics (SPH) method. In SPH, the domain is discretized using “particles” that carry with them physical properties corresponding to the material being modelled. Particles move under mutual interactions thereby making the method Lagrangian. Parallelism is essential in any realistic implementation of SPH and load balancing plays a pivotal role in determining the efficiency of the algorithm. The discussion on load balancing is agnostic to a particular numerical method and the results presented are readily applicable to any Lagrangian scheme where the particles/cells are free to move in the computational domain.

Rupak Rokade: SBHS Virtual Labs using Python

back to top

Abstract

This talk will present the use of python in the development and im- plementation of a Remote Triggered Virtual Lab for Single Board Heater System. The talk will focus on how the virtual lab for SBHS was setup using python. Things like how the client is given the access to a hardware hosted at a remote location will be discussed. The technique choosen for network communication as well as hardware communication using Python will be presented.

Krishnakant Mane: Python as the first language

back to top

Abstract

Programming is a process of systematically representing our ideas on to an electronic chip. No doubt the method to do this is precise and involves a tool called programming language, but most importantly we must understand that the thinking process has to be sharpened in a particular way. The first skill to be developed as a beginner is to master the art of translating problem space into machine space. As a starting point, a student of programming must take up a language which is more inclined towards refining the mentioned thought process rather than towards explaining the machine logic generation. Mostly students begin with a relatively low level language such as C, where even the first program necessitates learning how a computer functions in terms of program flow. One has to understand and master various concepts such as main, variable addresses, and headers at the very beginning. Such a teaching methodology hampers the understanding of the core programming fundamentals.

Why Python as the first language? Many teachers now choose Python as the first programming language over C or Java. Limited syntax, practical approach and more english like terms in the vocabulary are the main reasons for choosing Python. Another research done by many developers of the Python language reveals that code indentation is the natural way of representing program flow. If this approach is taken, the beginner programmer tends to concentrate on the problem at hand rather than counting braces and properly pairing them. Research has shown that a language like Python is not just effective in establishing a sharp thinking process in beginner programmers, but also paves a way for generating precise code for complex problems in other languages when they are learned.

An author of one of the most popular books on Python has stated in the preface that he used to loose lot of programmers on account of reduction in interest when C was used as the first language. If first 6 to 10 hours of any programming syllabus of other languages are compared with those of Python, it can easily be observed that amount of successful code generation is higher amongst beginner programmers. The BCA branch of SNDT in Mumbai has already introduced Python at a very early stage in the portion. Many programming courses in U.S based universities have also taken the same approach. It is important to realise that when teaching programming, the most important part for beginner programmers is to master the art of representing their ideas in a way computer understands. This translation must be more close to representing the problem in common terminology rather than machine terminology. Python is best suited for this work and unlike other similar languages is of commercial quality and very powerful at the same time.

Krishnakant Mane: GNUKhata a case study for Python developers

back to top

Abstract

Python has long been known for its ability for scientific computing and also to some extent for web application development (Pylons, django or even mod_python being examples ) However many developers are not aware that Python is an equaly great programming language when it comes to financial applications, that too developed as a distributed architecture.

This paper takes GNUKhata www.gnukhata.org as an example. The said software is a free and open source alternative to proprietary accounting software. The core business logic has been coded using Python. The entire logic is provided as an xmlrpc based service. Here it should be noted that Python provxides an easy to learn, easy to use, yet extremly powerful rpc library which needs due credit. The library is called Python twisted and the developers of GNUKhata disccovered that the xml packets produced as rpc messages were very optimised and compared to other languages worked seamlessly with the calculation intensive core functionality, a basic requirement for any accounting/ financial application.

For students of distributed, service oriented application development, GNUKhata's implementation of the core logic using Python can be a good lesson. For even a beginner,the code is not at all daunting and the beauty of twisted library is its preciseness. Unlike many other languages, xmlrpc is implemented in one single class and there is another class called reactor which just exposes the service. The front end of this software is also based on Python. The programmers have used Pylons www.pylonshq.org for this task. The most interesting part is that the reception end of the rpc protocol is implemented in an even simpler and can be understood at one glance. Code clearly shows that learning to implement an application frontend with a web framework can easily integrate with the core engine coded using twisted.

A point to be understood by students is that for front end it is easy to use the core Python library called xmlrpclib. Thus, The Code can be studied and one can observe that the entire hierarchy is based on 2 libraries, the Twisted library with its reacter and server class exposing the core functionality with excelent number crunching code and the front end using the plain xmlrpclib library.

Abdulmajid Ansari: Enhancing Open Source Blender 3D for Structural Analysis Using Python Tool

back to top

Abstract

In this contribution we are trying to enhance an open source application, So that it can work for Structural Analysis purpose. Structural Analysis has so much importance in engineering fields like civil, mechanical etc. It is also required to make proactive structures instead of making reactive structure. And it is only possible by analyzing structures before its construction. There are some products which are available for Structural Analysis but they are costly and they are not open source. This project contribute to open source by providing a free structural analysis and design product by adding analysis modules in Blender 3D.

The main focus of this contribution is on the Civil Structural Analysis for designing. For design free open source software solution BLENDER 3D is used .Blender is a free, powerful and open-source 3D computer graphics software product used for creating animated films, visual effects, interactive 3D applications, video games and 3D Structures. Blender's features include 3D modeling, texturing, rigging and skinning, particle simulation, animating, camera tracking, rendering, and video editing. It exhibits an internal fully fledged Python interpreter. This allows any user to add functionalities by writing a Python script. The ScientificPython API Libraries could be used for analyzing and 3D modeling.

Possibilities of analysis are described whereas the achieved accuracy has been determined. As Civil Structures are concern we are trying to give perfect accuracy in results.load structure by automating the forces caused by materials Like Steel, Concrete, timber and aluminum, wind, and earthquakes and structure itself. The results of such an analysis typically include support reactions, Stress and displacement. This information is then compared to criteria that indicate the conditions of failure.

The presented workflow is finally used for Structural Analysis and to make proactive structures. The project will eliminate the countless man-hours required to properly load your structure by automating the forces caused by materials Like Steel, Concrete, timber and aluminum, wind, and earthquakes and structure itself. And it contributes to Blender foundation and mainly to open source.

Abdulmajid Ansari: Free 3D Jewelry Modeling Software using Python Scripting Tool in Blender

back to top

Abstract

In this contribution it is shown how a jewelry model creating software can be built at free and adding features of rapid application development to it. Some modules implements for modeling of jewelry design within the Blender 3D free and open source software. Some implementation of jewelry creating models added to Blender 3D as per requirements for modeling of jewelry and this customized application can be published at no cost to public network and this application is open source.

The main focus of this contribution is that customizing the blender 3D. For this we need services of blender 3D software which is open source software means available in market at no cost and Python Scripting tool and some commercialized jewelry software. A soft prototype modeled by 3D curves and surfaces could be stressed in virtual environment, simulated and tested with exact material and other properties. 3D modeling of the product and then STL file is exported by tessellating the geometric 3D model. This application has its own flexibility features with some additional features of Jewelry based modules which includes ring creator by sections, eternity ring creator, bezel ring creator, prong setting creator, 3D textures, pattern for laser engraving, ring size creator, advanced scale ring size, chain creator, inserting already created models, automatic micro prong placement, project time tracker and provide best GUI.

Possibilities of blender is having features of blender 3D and some additional features of jewelry creating models like ring creator by sections, eternity ring creator, bezel ring creator, prong setting creator, 3D textures, pattern for laser engraving, advanced Boolean operations, sliced view, ring size creator, advanced scale ring size, chain creator, inserting already created models, automatic micro prong placement, project time tracker, STL and RP positioning tools and extra features of commercialized jewelry software which is helpful for creating and modeling jewelry model into it.

This project is first open source application build for creating 3D models of Jewelry with more features of rapid application development , graphical user interface for friendly environment and also provides low cost for creating and modeling of gold and imitation jewelry.