Python er et programmeringsprog, der kan bruges inden for mange områder. Inden for matematik og naturvidenskab benyttes Python ofte til numeriske beregninger, og det er også, hvad vi skal. Nogle af fordelene ved Python er at det er opensource og gratis, og pga. den store udbredelse findes der enormt mange online ressourcer, hvor man kan finde hjælp. På denne side vil vi kigge lidt nærmere på Python.

Har du programmeret før, er det formentlig piece of cake for dig at sætte dig ned og bruge Python. Har du ikke programmeret før, kan det ikke skade at lære lidt om det. At kunne programmere er en af de mest anvendelige færdigheder nu om stunder. Det er næsten ligegyldigt hvilket programmeringsprog man lærer i første omgang; for når man kan det grundlæggende i et kan man læse og forstå det grundlæggende i de fleste andre.

Der eksisterer allerede rigtig mange guides og tutorials for Python rundt omkring på nettet. Et forslag til en tutorial du kan følge er denne:

http://mbakker7.github.io/exploratory_computing_with_python/

Hvis du har fulgt første Notebook, er du rigtig godt klædt på til det, vi skal lave på øvelsesdagen. Hvis du er interesseret, kan du følge resten, men det er på ingen måder nødvendigt for at følge SRP øvelserne.

Se "Jupyter Notebooks" nedenfor for at komme igang med at programmere. Hvis du følger en tutorial; tag dig tid og afprøv kommandoerne, der beskrives. Den bedste måde at lære et programmeringssprog at kende på er 1) at lege med det, 2) at have et problem, man forsøger at løse med det. Søg på Google, hvis der er noget, du er i tvivl om, hvordan du skal gøre. Alle programmører søger hjælp online næsten hele tiden.

For at skrive og køre Python kode har vi brug for en editor. Der findes rigtig mange muligheder, men vi vil benytter Jupyter Notebooks, fordi man kan blande kode og tekst på en intuitiv måde og følge, hvad der sker. Man kan få adgang til Jupyter Notebooks på flere måder, nogle af dem beskrives herunder.

For at afprøve simple python kommandoer kan man benytte Jupyter Notebook's Try mulighed. Her kan man åbne en Jupyter Notebook på deres egen server. Vær opmærksom på at kapaciteten kan være fuld, og man derfor ikke kan komme på, så må man vente til senere. Denne tilgang er en god mulighed, hvis man blot vil kode med til tutorials.

https://jupyter.org/try

På øvelsesdagen har vi sat en server op, hvor der er installeret Python, Jupyter Notebooks og alle biblioteker der skal bruges. Desuden vil der ligge "ready-to-go" Notebooks som man kan køre. Du får altså ikke brug for selv at skrive kode, kun ændre på få parametre. Du vil få udleveret et login til Learnmore på øvelsesdagen. Indtil da kan du afprøve Python og Jupyter Notebooks som beskrevet ovenfor i punktet "Jupyter Notebook Try".

Hvis man for alvor vil begynde at kode i Jupyter Notebooks kan man downloade Anaconda som indeholder Python, Jupyter Notebooks og meget mere. Det skal understreges at det IKKE er nødvendigt at downloade Anaconda for at følge SRP øvelserne. Dette er kun, hvis man er interesseret i at forsætte med Python programmering. Anaconda kan downloades via

https://www.anaconda.com/products/individual

Du kan evt. se denne video hvis du har brug for hjælp til installation:

https://www.youtube.com/watch?v=Z1Yd7upQsXY

Når vi skal lave CT rekonstruktioner får vi brug for et bibliotek til at hjælpe os med at definere eksperimentets geomteri og algoritmer der kan udføre rekonstruktioner. Core Imaging Library (CIL) er et Python bibliotek til CT rekonstruktion, som er udviklet bl.a. af Senior Researcher Jakob Sauer Jørgensen fra DTU Compute. CIL vil være installeret på Learnmore serveren på øvelsesdagen, og der vil være Jupyter Notebooks tilgænglige, hvor alt er sat op.

Du kan afprøve CIL på forhånd online her:

https://mybinder.org/v2/gh/TomographicImaging/CIL-Demos/HEAD?urlpath=lab/tree/binder%2Findex.ipynb

Du kan evt. få mere information om CIL på deres website her:

https://www.ccpi.ac.uk/CIL