analitics

Pages

Friday, January 31, 2014

Simple way to remove duplicates from a list.

In Python 2.5 and later you can simple remove duplicates from a python list.

Let's see one simple example ...

>>> my_list = [1,2,3,22,33,11,33,'a','b','c','a']
>>> my_list = list(set(my_list))
>>> print my_list
['a', 1, 2, 3, 33, 11, 'c', 'b', 22]

As you can see the 33 and a items is removed.

Friday, December 6, 2013

Start searching with python google module .

You can use python google module to start searching anything using this module.

First you need to install the python module using pip.

# pip install google
Downloading/unpacking google
  Downloading google-1.05.zip
  Running setup.py egg_info for package google
    
Requirement already satisfied (use --upgrade to upgrade): beautifulsoup4 
in /usr/local/lib/python2.7/dist-packages (from google)
Installing collected packages: google
  Running setup.py install for google
    changing mode of build/scripts-2.7/google.py from 644 to 755
    
    changing mode of /usr/local/bin/google.py to 755
Successfully installed google
Cleaning up...

As you can see the next step is to upgrade: beautifulsoup4 ...

# pip install --upgrade beautifulsoup4
Downloading/unpacking beautifulsoup4 from https://pypi.python.org/packages/
source/b/beautifulsoup4/beautifulsoup4-4.3.2.tar.gz#md5=
b8d157a204d56512a4cc196e53e7d8ee
  Downloading beautifulsoup4-4.3.2.tar.gz (143Kb): 143Kb downloaded
  Running setup.py egg_info for package beautifulsoup4
    
Installing collected packages: beautifulsoup4
  Found existing installation: beautifulsoup4 4.3.1
    Uninstalling beautifulsoup4:
      Successfully uninstalled beautifulsoup4
  Running setup.py install for beautifulsoup4
    
Successfully installed beautifulsoup4
Cleaning up...

Let's make a simple script to find linux word using google.com ...

>>> from google import search
>>> for url in search('linux', tld='com', lang='en', stop=2):
...     print(url)
... 
http://en.wikipedia.org/wiki/Linux
http://en.wikipedia.org/wiki/Unix-like
http://en.wikipedia.org/wiki/Linus_Torvalds
http://en.wikipedia.org/wiki/Linux_kernel
http://en.wikipedia.org/wiki/List_of_Linux_distributions
...

If you want to know more about google search function then use this:

>>> help(google.search)
Help on function search in module google:

search(query, tld='com', lang='en', num=10, start=0, stop=None, pause=2.0)
    Search the given query string using Google.
...    

... and this is all.

Saturday, November 30, 2013

How I saw the Comet C/2012 S1 ISON with python .

I use sunpy python module to see the Comet C/2012 S1 ISON and SOHO LASCO C3 instrument.
This is the result:

The script is simple.
$ python
Python 2.7.3 (default, Jan  2 2013, 16:53:07) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sunpy
>>> from sunpy.net.helioviewer import HelioviewerClient
>>> 
>>> hv = HelioviewerClient()
>>> datasources = hv.get_data_sources()
>>> 
>>> # print a list of datasources and their associated ids
... for observatory, instruments in datasources.items():
...     for inst, detectors in instruments.items():
...         for det, measurements in detectors.items():
...             for meas, params in measurements.items():
...                 print("%s %s: %d" % (observatory, params['nickname'], params['sourceId']))
... 
Yohkoh SXT AlMgMn: 33
Yohkoh SXT thin-Al: 34
Yohkoh SXT white-light: 35
PROBA2 SWAP 174: 32
STEREO_A EUVI-A 195: 21
STEREO_A EUVI-A 304: 23
STEREO_A EUVI-A 284: 22
STEREO_A EUVI-A 171: 20
STEREO_A COR2-A: 29
STEREO_A COR1-A: 28
STEREO_B EUVI-B 195: 25
STEREO_B EUVI-B 304: 27
STEREO_B EUVI-B 284: 26
STEREO_B EUVI-B 171: 24
STEREO_B COR2-B: 31
STEREO_B COR1-B: 30
SOHO MDI Mag: 6
SOHO MDI Int: 7
SOHO EIT 195: 1
SOHO EIT 304: 3
SOHO EIT 284: 2
SOHO EIT 171: 0
SOHO LASCO C3: 5
SOHO LASCO C2: 4
SDO AIA 1700: 16
SDO AIA 211: 12
SDO AIA 335: 14
SDO AIA 1600: 15
SDO AIA 304: 13
SDO AIA 193: 11
SDO AIA 131: 9
SDO AIA 4500: 17
SDO AIA 94: 8
SDO AIA 171: 10
SDO HMI Mag: 19
SDO HMI Int: 18
This show me all instruments from sunpy. You see all instruments online here
The next step is to take one png image :
>>> hv.download_png('2013/11/29 00:15:00', 50, "[SOHO,LASCO,C3,white-light,1,100]", x0=0, y0=0, width=768, height=768)
The settings are : date and time , the image resolution (arcseconds per pixel), the SOHO LASCO C3 instrument with the layer visibility , center points and size

Friday, November 8, 2013

Using python with Image, ImageFilter, ImageChops and custom image filter.

Today I will sow you some filters using python Image, ImageFilter and ImageChops.

I make this default python script to open one image and after will be delete from memory.See the default image:


I make also one python class named TEST_FILTER.

This class will have all data from filter, see filterargs.

The filterargs args it's one matrix and this will be the filter.

The default script ...

import Image
import ImageFilter
import ImageChops

class TEST_FILTER(ImageFilter.BuiltinFilter):
    name="TestFilter"
    filterargs = (3,3),10,0,(1,0,1,0,0,0,1,0,1)

def main ():
    filename = "test-gentoo.jpg"
    image = Image.open(filename);
    del image;
if (__name__ =="__main__"):
   main();

Let's try first filter : TEST_FILTER

import Image
import ImageFilter
import ImageChops

class TEST_FILTER(ImageFilter.BuiltinFilter):
    name="TestFilter"
    filterargs = (3,3),10,0,(1,0,1,0,0,0,1,0,1)

def main ():
    filename = "test-gentoo.jpg"
    image = Image.open(filename);
    image.filter(TEST_FILTER).show();
    del image;
if (__name__ =="__main__"):
   main();

The result will be this:


Now for each filter will change this source code...

    image.filter(TEST_FILTER).show();

...with the new filter source code.

Let's see some filters ...

EMBOSS - filter

    image.filter(ImageFilter.EMBOSS).show();

FIND_EDGES - filter

    image.filter(ImageFilter.FIND_EDGES).show();

BLUR - filter

    image.filter(ImageFilter.BLUR).show();

CONTOUR - filter

    image.filter(ImageFilter.CONTOUR).show();

DETAIL - filter

    image.filter(ImageFilter.DETAIL).show();

EDGE_ENHANCE - filter

    image.filter(ImageFilter.EDGE_ENHANCE).show();

Now image convert with bit 1.

    image.convert("1").show();

Invert image with ImageChops.

    ImageChops.invert(image).show();

Thursday, October 31, 2013

News Python 2.6.9 final was released on October 29 2013.

News about python from www.python.org.
Python 2.6.9 is a security-fix source-only release for Python 2.6.8, fixing several reported security issues: issue 16037, issue 16038, issue 16039, issue 16040, issue 16041, and issue 16042 (CVE-2013-1752, long lines consuming too much memory), as well as issue 14984 (security enforcement on $HOME/.netrc files), issue 16248 (code execution vulnerability in tkinter), and issue 18709 (CVE-2013-4238, SSL module handling of NULL bytes inside subjectAltName).

Monday, October 21, 2013

Python versus Matlab - good article by Luis Pedro Coelho

Luis Pedro Coelho is a computational biologist at EMBL.
In this article Luis Pedro Coelho come with many arguments about Python versus Matlab.
Very good article ...