Anmeldelse af “The Physics of Star Trek”

Publiceret i Subspace, 11(3), 2006 p. 23

The Physics of Star Trek
Lawrence M. Krauss (1996) ISBN 0-00-655042-8

“Highly structured but it doesn’t seem to conform to any of our
physical laws”. Sådan beskriver Dax det protounivers. der i “Playing
God” lidt senere er tæt på at udslette ikke alene DS9 men også resten
af vores univers. Og størstedelen af Star Trek universet passer også
ret godt på den beskrivelse. I hvert fald hvis man skal tro “The
Physics of Star Trek” og med en velanskreven fysiker som forfatter og
et forord af Stephen Hawking er jeg ikke den der skal påstå andet.
Bogen er delt i tre. I første sektion behandles warpdrivet set fra
flere vinkler; den klassiske newtonske fysik, den relativistiske
fysik, og de nyeste fysiske erkendelser efter Hawking. Og heldigvis
viser det sig at selvom man ikke kan bryde de fysiske love der
forbyder overlyshastighed, så kan man bøje dem. De teknologiske
hindringer der er på vejen kan virke uoverstigelige, men det er ikke
principielt umuligt at nå målet.
Langt værre står det til i andet afsnit. Min personlige
favoritteknologi i Star Trek er afgjort transporteren. Desværre er det
også den mest usandsynlige. Over tre kapitler rammes en massiv pæl
gennem ikke alene transporteren, men også replikatoren og holodæk.
Krauss forklarer letfatteligt både hvordan teknikken ville virke, og
hvorfor den ikke gør det. Desværre springer han let hen over de
filosofiske spørgsmål om sjæl og bevidsthed der naturligt opstår i
denne forbindelse og det er en skam. De fysiske og tekniske problemer
er dog rigeligt underholdende, og netop derfor er det synd at dette
afsnit er relativt kort.
Tredie og sidste afsnit helliges ting der måske er derude, liv for
eksempel, virkelige fysiske fænomener Star Trek forfatterne har lånt,
og i visse tilfælde forudset samt forfatterens ti yndlingsfejl.
Det kan lyde negativt at få frataget illusionerne som Roddenberry har
givet os. Men det er det ikke. Det er tydeligt at forfatteren elsker
sit emne og tager det alvorligt, og selvom naturlovene står i vejen er
det interessant at få udpeget præcist hvor på vejen de står. Lige så
interessant er det at få en levende og letfattelig fortælling om nogle
af de mere eksotiske hjørner af fysikken. Ikke alene er universet
mærkeligere end vi forestiller os, det er mærkeligere end vi kan
forestille os!
Bogen forudsætter ikke det store kendskab til fysik. Til gengæld er
det absolut nødvendigt at man har nysgerrigheden i behold og ikke
lader sig skræmme af at kvantemekanikken kræver at man kan folde sin
hjerne i flere dimensioner. De krav er vist opfyldt hvis man er
trekkie.
Så hvis du vil have den tekniske forklaring på hvorfor vi ved at
romulanere bløder grønt, hvorfor replikeret mad ikke smager som den
vor mor lavede, hvordan transporteren hænger sammen med holodæk og
hvad de fysiske forudsætninger for liv på jorden er, så er dette bogen
for dig.

Smuk som en Star Trek Padd

I maj 2010 havde en let overordnet kollega igennem ret lang tid ikke kunne forstå de høflige og pæne måder jeg sagde nej til at skrive en anmeldelser af Apples på det tidspunkt ret nye iPad til Subspace. Til sidst gav jeg op og skrev den. Men jeg var ærligt talt ret pissed, for på det tidspunkt brugte jeg ret meget tid på at pendle mellem København og Ålborg, og havde egentlig ikke tid til det pjat.

27. januar i år blev det seneste skud på æbletræet demonstreret. Steve Jobs kaldte til pressekonference, og hele verden stillede op for at se den længe ventede iPad. Og den var længe ventet. Det sidste halve år havde rygterne svirret på et niveau, hvor tekniknørder som undertegnede havde fulgt nøje med i hvor Apples direktører befandt sig. Hvis de var samlet var det sikkert fordi den ventede tablet-pc lige straks ville blive præsenteret.

Forventningen var at den ville komme til at hedde iSlate. Det viste sig ikke at være rigtigt, og for en trekker var det en stor fornøjelse at se navnet, iPad. Det er da også derfor den bliver anmeldt her – parallellerne til Star Treks PADD er oplagte. Faktisk er de næsten bygget ind – da det skulle demonstreres hvor god den er til at se film på, valgte Jobs at vise et klip fra den seneste Star Trek film.

P.A.D.D., Personal Access Display Device dukker op allerede i det første afsnit af Star Trek, der vises på TV tilbage i 1966 – dog kun ganske kort: Få minutter inde i ”The Man Trap” kvitterer Kirk for et eller andet, på hvad der tydeligvis er en forløber for en P.A.D.D., straks efter bærer  fænrikken den ud igen, og det er det. Senere ser vi mere til den. Wesley Crusher render rundt med større mængder af dem, og i afsnittet ”Real life” i Voyagers tredie sæson, er der ingen tvivl om at de bliver brugt til at læse bøger på. Belanna Torres læser i hvert fald hvad der bedst kan beskrives som en lægeroman. Godt nok den mere hårdtslående klingonvariant, men triviallitteratur ikke desto mindre.

Og netop det at læse bøger og tidsskrifter, er en af de funktioner Apple bruger massivt i deres markedsføring af iPadden. Faktisk har de oprettet deres egen boghandel i iTunes. Det vender vi tilbage til.

I forbindelse med mit arbejde, har jeg fået fingrene i en iPad (faktisk 11 i skrivende stund). En af opgaverne er at teste dem med henblik på at sætte dem til udlån på Det Kongelige Bibliotek. Og selv denne erklærede æbleallergiker er begejstret.

Der er selvfølgelig malurt i bægeret. iPadden kan ikke multitaske, den mangler en usb-port og et kamera. Og Steve Jobs insisterer på at bestemme hvilke applikationer jeg kan få adgang til. Men de problemer glemmer man når man sidder med det utroligt lækre brugerinteface, hvor det hele spiller. Farverne står fantastisk klart – men det skal de også på en moderne skærm. Skærmbillederne flyder glat over displayet. Zoom funktionerne er flydende og lækre. Jeg har prøvet multitouch på min Nexus 1 telefon. Der glider det også let og elegant, men hvor multitouch på mindre skærme er en fiks feature man ikke helt ved hvad man skal bruge til, kommer den for alvor til sin ret på iPaddens store, 9,7 tommers skærm.

Med en iPad i hænderne får man indtryk af at kunne det hele. Er der adgang til nettet er der efterhånden ikke noget man ikke kan. Googles tekstbehandling, og alle de andre programmer der ligger i ”clouden” fungerer fint. Der er adgang til mail, og nyhederne der strømmer ind fra de 47 RSS-feeds jeg abonnerer på, klares let og elegant, i et interface der virker endnu bedre end på min bærbare. Det er dog ikke helt fair at bedømme iPadden ud fra hvordan programmer på nettet virker. Når Google Docs fungerer fremragende, er det fordi Google har udviklet særlige udgaver af deres programmer specielt til iPadden. Og selvom den intuitive grænseflade bidrager positivt, er det altså ikke kun Apples fortjeneste, at den norske statsminister, da han strandede i USA på grund af en islandsk vulkan, kunne regere Norge fra sin iPad.

Apples boghandel, og den tilhørende applikation iBooks er den primære årsag til at jeg har en iPad liggende ved siden af mig. Muligheden for at læse bøger på den er en af de pointer der er slået hårdt på i markedsføringen. Som dansk bruger af en parallelimporteret iPad er der først for nylig kommet adgang til boghandelen. Men også inden Apple åbnede døren på klem, kunne man med lidt trylleri og en fiktiv amerikansk adresse komme langt, og iBooks er virkelig et lækkert program. iBooks leveres med Peter Plys præinstalleret og det er imponerende som det er lykkedes at formattere bogen, så initialer og illustrationer fremstår fuldstændig som i en trykt bog. iBooks er stadig meget inspireret af den trykte bog som udgangspunkt for designet. Man kan se bogryggen på den elektroniske bog! Mange klager over at det er trættende for øjnene at læse på en skærm. Problemet er den baggrundsbelyste skærm, som betyder at man reelt sidder og stirrer ind i en projektør. Denne anmelder tror dog, at der er behov for at revurdere den overleverede visdom om hvad der er trættende at læse på. Det er svært at vurdere på baggrund af de korte perioder i hvilke jeg har læst Peter Plys, men jeg har ikke oplevet træthed i øjnene(1). Hvad der derimod er stærkt irriterende, er den blanke skærm. Glem alt om at læse, eller se videoer for den sags skyld, på iPadden i skarpt lys. Skinner solen, har man ikke en højteknologisk adgang til at surfe på nettet, men verdens dyreste spejl mellem hænderne.

Med iPadden har Apple leveret et rigtig godt bud på fremtidens computer. Hvad skal vi med tastaturer når vi kan få det op på skærmen efter behov? Og hvad skal vi med bærbare computere der måske kan snige sig ned på et kilo, når man kan få en iPad der kun vejer 680 gram? Hvad der til gengæld står klart efter testen er, at iPadden ikke er spor sjov hvis man ikke er på nettet. Dimsen er designet til at være online hele tiden, og mister megen af sin charme når forbindelsen ryger. Det er løst i de seneste udgaver af iPadden, der kan gå på 3G-nettet.

Det måske mest interessante ved iPadden er de muligheder der åbnes for konkurrenterne. Tablet-pc’er har været på markedet de sidste 10 år, uden for alvor at slå igennem. Med en af verdens mest potente markedsføringsmaskiner bag sig, har iPadden åbnet nyt territorium for hardware producenterne. Et større antal konkurrenter er allerede på markedet, Google skulle også være på vej med en iPad-killer, og det skulle give en inkarneret æbleallergiker som undertegnede adgang til bedre og billigere tablet-pc’er inden for overskuelig tid. Uanset hvad er vi med iPadden kommet et skridt nærmere PADD’en. Og det er jo ikke så ringe endda.

(1) I hvert fald ikke mere end hvad der kan tilskrives, at jeg skal skrive anmeldelser til Subspace i stedet for at sove

Fake News. And the importance of numbers

Or rather, the importance of all the numbers.

This is not a political blog. On the other hand, I am a firm believer in facts. There is an objective truth out there. And the world can, more or less, be explained by numbers. And when facts and numbers are weaponized in political struggles, well, it’s hard to avoid wandering in to dangerous territory.

And with that disclaimer out of the way. Recently I saw a graphic making the rounds on Facebook. A simple table listing median household income in the US by race. The numbers are said to come from the US Census Bureau.

The idea is to document that “white privilege” does not exist. “See all the people that are not white, who makes more money than whites”.

Could this be true? As a european, my expectation would be, that white, caucasian, americans are in general terms better off than, for lack of a better word, non-whites, in the US (see, this is dangerous territory, what words do I dare to use?).

One of the great things about US federal institutions is that they generally provides quite free access to their data. I did not have the patience to learn how to navigate their website. Someone at Wikipedia did. And have made this nifty table.

I’m not going to copy all the data. There’s a LOT. But there is three tables. Median household income by race, by ancestry, and by native american tribe. Let us take a look at the first:

Rank Race Median household income (2015 USD)
1 Asian-American 91,440
2 White 59,698
3 Native Hawaiian and other pacific islander 55,607
4 Some other race 42,461
5 American Indian and Alaska Native 38,530
6 Black or African American 36,544

The numbers does not quite match. But “white” at 59,698 USD compares OK with the 60,256 USD in the graphic. The graphic claims that the numbers are from 2014. The Wikipedia numbers are from 2015. Small differences should not throw us off course.

That is more in sync with my expectations. But are the numbers in the table cooked?

Nope. They are actually correct. The next table on Wikipedia lists median household incomes by ancestry. Indian American in the graphic: 101,561 USD. Indian American on Wikipedia: 101,591 USD. Same with Taiwanese. And the others. There is a small detail. The numbers by ancestry appears to come from the 2014 data from the US Census Bureau, and not the 2015. Again, this is a detail. The main point of the graphic is not that Indian Americans make 41,335 USD more than whites, but rather that they make more money. And that Taiwanese Americans do, and that Filipino Americans do and that… well you get the point.

All right, so what is wrong with that table? The thing that is wrong, is that it cherrypicks the data. Let us take a look at the table of median household income by ancestry. Just the first six rows:

 

Rank Ancestry Income
1 Indian American 101,591
2 Taiwanese American 85,566
3 Filipino American 82,389
4 Australian American 81,452
5 Israeli American 79,736
6 European American 77,440

I will NOT be dragged into the battles about what constitutes a race, how white you should be to be considered white or the whole topic of trans-racialism.
But in the context of the original table, “European American” is rather white. And when we get to “Danish American” (median income 68,558 USD) we are, statistically speaking, talking about people who are very white.

Conclusion: It is not enough to check that the numbers are correct. You also need to check that you have all the numbers.

Hjemmelavet tonic

I sommers – det vil sige sommeren 2016, var det næsten umuligt at finde et sted hvor man kunne købe kinabark. Det skyldtes, at Politiken havde offentliggjort en artikel, der fortalte hvordan man kunne lave sin egen tonic.

Og så skulle alle hipsterne naturligvis lave deres egen tonic, hvilket var irriterende for mig, for så kunne jeg ikke købe kinabark til at lave min egen tonic. (lad min nu være ærlig, det var ikke noget jeg gjorde før artiklen, jeg fik samme ide som hipsterne).

Men jeg har en god hukommelse, så jeg ventede, og nu er jeg gået igang med at lave min egen tonic. Hipsterne er gået videre til næste mode, og det er igen til at få kinabark.

Jeg startede – det var før jul, med Politikens standardopskrift. Den var OK, men jeg syntes at den smagte for meget af citron(græs). Så nu er jeg gået igang med at udvikle min egen opskrift.

Første forsøg var efter følgende recept:

  • 2 stilke citrongræs: 39,3 g
  • 6 allehåndebær: 0,4 g
  • 1,5 spsk kinabark: 11,3 g
  • Citronsyre: 20,0 g
  • Stjerneanis: 0,8 g
  • Fintrevet skal af 3 økoappelsiner: 16,5 g
  • Saften af samme tre appelsiner: 200 ml.
  • 1 l vand
Alle ingredienser afvejet, og klar til at komme i gryden.

Allehånde og stjerneanis knuses let i morteren. Citrongræs klippes i mindre stykker, og knuses i morteren. Alle øvrige ingredienser hældes i en gryde, der bringes i kog.

Fra gryden kom i kog, kogte den under middel varme i 21 minutter under låg.

Hele balladen blev hældt gennem en sigte, og derefter gennem min superbag. Og derefter gennem kaffefiltre. Jeg tror jeg nåede op på 15 kaffefiltre, og var nødt til at tage en tur til Fakta for at købe flere.

Og så var klokken blevet mange. Der var hældt 1,2 l væske i gryden, og nu var der 850 ml tilbage – kaffefiltrene havde taget deres del. Så det blev hældt på en bluecap flaske, og sat på køl til dagen efter.

Der var lidt snask i bunden af flasken da jeg hælde den i gryden dagen derpå. Og det var blot det der var fint nok til at komme gennem kaffefiltrene. Anyway. 751 gram sukker blev opløst under opvarmning, blandingen blev bragt i kog, der blev skummet af, og siruppen blev hældt på skoldede flasker.

Og hvordan smagte det så? Jeg fortyndede 42 ml sirup med 80 ml danskvand (fra sodastreameren). Og kunne godt fortyndes noget mere. 50 ml af det fortyndede blev fortyndet til 100 ml. Og så var den tættere på det ønskede resultat. Helt så meget skal den nu ikke fortyndes, jeg skal lande på en mellemproportional. Og så kunne den i øvrigt godt bruge noget mere citrongræs. Måske skulle en af appelsinerne erstattes med en citron. Det prøver jeg næste gang. Politiken foreslog at man kunne eksperimentere, og det er præcist hvad jeg har i sinde at gøre. Så næste forsøg får ud over citron(græs) også en sjat tørrede hyldeblomster.

Andre tip? Næste gang prøver jeg nok at skumme af inden blandingen hældes gennem kaffefiltrene. Citronsyre kan man købe i supermarkedet. Eller på nemlig.com. Der koster det 347,50 kr kiloet.
Man kan også købe det i Matas. Der koster det 137,50 kr kiloet. Jamen er det ikke farligt? Der er jo en faremærkning på! Jo, det kan give alvorlige øjenirritationer hvis man får det i øjnene. Dr. Oetkers fra supermarkedet giver nøjagtig de samme øjenirritationer. Og når man læser på bøtten fra Matas, står der i øvrigt at citronsyren er af levnedsmiddelkvalitet. Så lad være med at gøre nogen rige på at putte citronsyre i små poser.

Hvor meget får man ud af det? Jeg målte ikke. Men der var nok til at fylde 4 kvartlitersflasker. Og så en sjat til (det var de 42 ml fra tidligere). Jeg skal have set på hvad der egentlig sker af volumenændringer når man opløser sukker i vand.

Bemærk også at jeg har vægtangivelser på her. Politiken angiver et antal stilke citrongræs. Men der er katten til forskel på sådan nogen stilke. De fortæller også at man skal bruge 1½ spsk kinabark. Men hvor meget er det? Vægt angivelser er langt mere præcise og reproducerbare.

Lige hvad kinabarken angår. Der testede jeg faktisk. Jeg tog en spsk (det er i øvrigt 15 ml) kinabark 20 gange, og vejede det. Det gav følgende resultater (alle mål i gram):

8,5 7,5 7,3 7,9 7,8
6,5 7,4 8,1 7,7 7,6
6,8 7,5 7,5 7,0 6,8
7,6 7,9 7,6 7,3 7,7

Se, det er pænt store variationer. Der er tal mellem 6,5 og 8,5 gram. Hvis Politiken brugte det mindste mål, og jeg brugte det største – så er det en forskel på vores opskrifter på 30%. Det er faktisk ret meget.

Så i stedet regnede jeg snittet ud – det er 7,5 g pr 15 milliliter. Eller 0,5 gram/ml. Og når Politiken angiver at man skal bruge 1½ spsk – hvilket så svarer til 22,5 ml, finder man ud af at der bør vejes 11,25 g kinabark af. Så præcis er min vægt ikke, så det blev til 11,3 g.

Stuff to keep in mind

Cynical lessons for lower middle management in times of change.

  • There are no one else but you, that takes care of you.
  • Do not expect any kind of support. It might come, but don’t count on it.

More lessons to come as I finally learn them.

Skat og selvtægt

Kritikere, jeg selv inklusiv, bruger undertiden ordet “natvægterstat”, når vi skal beskrive hvad det er for et samfund Liberal Alliance ønsker. Det er ikke helt retfærdigt. Men det vi mener er, at LA ønsker at skatten skal sættes så langt ned, at det eneste samfundet, staten, kan levere af serviceydelser er en natvægter. En mand der går rundt i byens gader ved nattetide med en kæp og giver tæsk til misædere. Alt det andet er ligegyldigt.

Når det ikke er helt rimeligt, er det fordi LA jo faktisk vil have andre ting end blot en nattevagt. De vil godt have infrastruktur og andet godt.

Når der er en pointe, er det, fordi natvægteren er det logiske slutpunkt når man vil sænke skatter. Natvægteren er samfundets voldsmonopol. Og voldsmonopolet og skatteopkrævningen hænger tæt sammen.

Voldsmonopolet plejer at blive defineret af Max Weber: “En stat er en realitet, hvis og for så vidt dens embedsvæsen effektivt formår at opretholde monopolet på legitim fysisk tvang”.

Det er en social kontrakt mellem den abstrakte definition vi kalder staten, og de meget konkrete mennesker der indgår i den. Kun staten har lov til at bruge vold. Jeg må ikke hævne mig. Jeg skal gå til staten, som så straffer den person der har gjort mig fortræd. Det er et forbud mod selvtægt. For de islandske sagaer har vist hvor uhensigtsmæssige fejder og hævn er.

Det hænger sammen med den personlige ejendomsret og skatteopkrævningen. Det her er mine penge. Og jeg har indgået en social kontrakt med staten om at kun den, efter nærmere bestemte regler, har lov til at tage dem fra mig med magt. Handelen er, at hvis staten beskytter mig mod at andre tager mine penge så afleverer jeg frivilligt nogen af dem. Uden at staten skal bruge kræfter på at udøve vold mod mig.

Det går langt tilbage. Den danegæld vi opkrævede i England i sin tid var en skat. Opkrævet efter princippet om at hvis ikke de gav os deres sølv, så slog vi dem ihjel. Det næste trin er at statsdannelsen beskytter befolkningen mod at andre opkræver skat, at andre tager vores penge. Staten straffer tyveknægte, fordi den ikke bryder sig om konkurrence.

Og sådan hænger det hele så smukt sammen. Jeg giver frivilligt nogen af mine værdier til staten, der dermed slipper for besværet med at tage dem med magt. Til gengæld beskytter den mig mod tyveknægte og voldsforbrydere. Alt det andet med kontanthjælp, kollektiv trafik og sygehuse er først kommet til for nylig.

Og det er her det bliver farligt, når borgerne i en stat oplever at staten ikke længere kan beskytte dem og deres værdier. Hvis staten ikke beskytter mig mod tyveknægte, så bliver jeg nødt til at gøre det selv. Hvis staten ikke kan beskytte mig mod vold, så bliver jeg nødt til at gøre det selv. Og hvis staten ikke kan finde ud af at udøve vold på mine vegne mod en forbryder, så kan den heller ikke finde ud af at gøre det mod mig. Og så kan jeg endda hævne mig uden at samfundet kommer efter mig.

Det simpelthen grundlaget for statens eksistens, jf. Weber, at den kan beskytte sit monopol på vold.

Så hvad er det der sker når borgerne oplever at politiet kun kommer hvis der er stjålet for mere end 100.000 kr i indbruddet? Hvad sker der, når borgerne oplever, at politiet slet ikke kommer, når borgerne ringer efter hjælp når deres børn bliver overfaldet på gaden?

Der sker ganske enkelt det at grundlaget for at hævde at staten stadig eksisterer, eroderer. Det forsvinder.

Så når vi kalder slutpunktet for Liberal Alliances skattepolitik for “natvægterstaten”, så er det fordi vi fornemmer at de ønsker så lidt stat som overhovedet muligt. Og den minimale stat er en stat, der beskytter skatteyderne mod andres skatteopkrævning. Når tyven stjæler din computer, har han opkrævet skat hos dig. Illegitimt. Og det skal staten beskytte dig mod.

Og hvis staten ikke engang kan det – så ophører den med at eksistere.

 

https://christianknudsen.info/wp-admin/post.php?post=493&action=edit

Let’s be honest. I am easily distracted. While I was thinking about how to plot networks of coauthorships in Acta Chemica Scandinavica, I tinkered with getting data on my twitter-following.

Thats easy enough, but I thought it would be cool to map them. While googling that (I know. There are automated ways to do that, there are scripts I can just copy. Its not difficult. I just want to do it myself.) I stumbled across some neat heatmaps visualizing the distance to fastfood outlets in the US. That looked like fun.

So now, I’m hammering away at that at the moment….

What to map? I need coordinates. For some reason I thought of 7/11. Probably something with those US fastfood stores. Anyway, http://www.7-eleven.dk/find-butik/ has a map. And coordinates on the page!

Save, download. Delete everything that does not contain coordinates. Keep the parts with “value=[coordinates]”. And save the file. And then, some R. Set the working directory, readlines, use stringfunctions to extract the coordinates:

rm(list=ls())
setwd("~/Desktop/711")
koo <- readLines("711_coordinates.html")
koo_list <- c()
for(i in 1:length(koo)){
  res <- strsplit(koo[i], 'value=\"')
  res <- strsplit(res[[1]][2],'\">')
  res <- res[[1]][1]
  koo_list <- c(koo_list, res)
}

I have a nagging suspision that there are repeated coordinates. Lets get rid of those, and take a look:

koo <- unique(koo_list)
head(koo)
## [1] "55.68096,12.58000"   "55.681899,12.583777" "55.68216,12.57454"  
## [4] "55.67787,12.58015"   "55.68225,12.57044"   "55.68284,12.57098"

I need to get that into a dataframe:

koo_df <- data.frame(lat=character(), lng=character(), stringsAsFactors=FALSE)

for(i in 1:length(koo)){
  koordinat <- strsplit(koo[i],',')
  new_row <- c(as.numeric(koordinat[[1]][1]),as.numeric(koordinat[[1]][2]))
  koo_df <- rbind(koo_df, new_row, stringsAsFactors=FALSE)

}
colnames(koo_df) <- c("lat", "lng")
tail(koo_df)
##          lat      lng
## 181 57.05891  9.92778
## 182 57.15559  9.73841
## 183 57.45580 10.04221
## 184 57.45665  9.98596
## 185 57.44108 10.53995
## 186       NA       NA

Oh, and I should get rid of any missing values:

row.has.na <- apply(koo_df, 1, function(x){any(is.na(x))})
koo_df <- koo_df[!row.has.na,]

I need some libraries:

library("maps")
library("mapdata")
library('sp')
library('maptools')
## Checking rgeos availability: FALSE
##      Note: when rgeos is not available, polygon geometry     computations in maptools depend on gpclib,
##      which has a restricted licence. It is disabled by default;
##      to enable gpclib, type gpclibPermit()
library('spatstat')
## Loading required package: nlme
## Loading required package: rpart
## 
## spatstat 1.46-1       (nickname: 'Spoiler Alert') 
## For an introduction to spatstat, type 'beginner'
## 
## Note: spatstat version 1.46-1 is out of date by more than 11 weeks; a newer version should be available.

Maps helps drawing maps. Mapdata provides maps for the world. sp gives methods for handling spatial data. Lines and polygons eg. I’m going to need that. Maptools is another bunch of tols for handling maps. Spatstat is a set of tools for handling spatial statistical data. I only really need one of them (I think). But it is the most important.

Lets plot something:

kort <- map('worldHires', 'Denmark', col="white", fill=TRUE, bg=NA, 
    xlim=c(8,17), ylim=c(53,58), resolution=0)

Map takes a lot of different arguments. The first two: worldHires tells it that it should look to the worldHires map from mapdata. And that we should look specifically to the part called Denmark. col allows me to choose the color of the map – I’m going with black’n’white here. Fill – should the areas be filled with the color (yes, they should, for reasons I’ll get back to.) bg is the background color, and I can limit the part of the map I want to draw. Maps have coordinates as degrees as their natural units. Longitude 8 to 17, latitude 53 to 58 does nicely. The Faroe Islands are in the map (but for some reason not Greenland), I’m not going to bother with them. And Bornholm is going to be cut out later. Well, Bornholm is going to get cut now:

kort <- map('worldHires', 'Denmark', col="green", fill=TRUE, bg="blue", 
    xlim=c(8,13), ylim=c(54,58), resolution=0)

Resolution – there are two settings, 0 and 1. 0 gives the highest resolution.

There are some problems here. Smaller islands have disappered. The resolutions is not fantastic. But all that can be easily solved later. The hard part is the following.

Lets get back to the original map, and take a look:

kort <- map('worldHires', 'Denmark', col="white", fill=TRUE, bg=NA, 
    xlim=c(8,13), ylim=c(54,58), resolution=0)

str(kort)
## List of 4
##  $ x    : num [1:11164] 8.66 8.68 8.69 8.7 8.72 ...
##  $ y    : num [1:11164] 54.9 54.9 54.9 54.9 54.9 ...
##  $ range: num [1:4] 8.09 12.62 54.56 57.75
##  $ names: chr [1:10] "Denmark" "Denmark:Mors" "Denmark:Mon" "Denmark:Samso" ...
##  - attr(*, "class")= chr "map"

The kort-variable (kort because that is danish for map) is a list of four lists. x and y that defines the shapes. How that is actually done given that Denmark consist of 1? islands, I have no idea. There is a range. And there are 10 named areas in the object. All of them Denmark, but some of them islands like Mors, Møn etc.

Lets also plot the location of 7/11 stores in Denmark:

map(kort)
points(koo_df$lng, koo_df$lat)

We’ll get back to that.

What I want to plot is a distancemap. Different colors based on how far a given position.

The library spatstat has a methods/function that handles that. It’s called distmap(). It takes an object of class “ppp” – that can be made with the function ppp(), also from spatstat.

ppp() takes two vectors for x and y coordinates, a window, defining the, well, window, of the map. And that is of the class “owin”.

Therefore, I should begin by making the point pattern dataset::

A <- ppp(koo_df$lng,koo_df$lat,window=owin(xrange=c(7,13),yrange=c(53,58)))
plot(A)

It looks a bit skewed. But otherwise ok. Distmap() takes the ppp object. So its rather simple to calculate and plot:

z <- distmap(A)

plot(z)

Yeah. Very psychedelic. Looking at it, it appears that the scale is in degrees. The yellow colour should be “2.5”. That more or less matches 2½ degree, if you remember that the y-scale is 5 degrees high.

One can almost see something that looks like the outline of Denmark. It gets easier it you know that it is there.

What would be nice, would be to define a window matching Denmark. Make a cut-out of Denmark in the distancemap.

That can be done. Spatstat has a function as.owin.SpatialPolygons() that can take polygons, defined elsewhere, and convert them to a windows, that can be used in the ppp()-function. It takes an object of the type spatialpolygons. Where do we get that? maptools has a function that can convert a map to spatialpolygons: map2SpatialPolygons(). That function takes a map. And a list of the names saved in that map. We already have those. kort, and kort$names. So, first map2SpatialPolygons:

kort.poly <- map2SpatialPolygons(kort, IDs = kort$names)

Then as.owin.SpatialPolygons:

dk.owin <- as.owin.SpatialPolygons(kort.poly)

And now I have a nice cutout shapes like Denmark! I can even plot it!!

plot(dk.owin)

Neato! Now I just need to use the dk.owin window when defining the ppp object, rather than the rectangular window I used earlier:

A <- ppp(koo_df$lng,koo_df$lat,window=dk.owin)
## Warning in ppp(koo_df$lng, koo_df$lat, window = dk.owin): 20 points were
## rejected as lying outside the specified window

Run the distmap function:

dist <- distmap(A)

and plot it:

plot(dist)

Done! I do get a warning. 20 points are outside the window. Not that big a surprise, the map is not very precise. Whole islands are missing! But looking at the original map, and what I get when I plot the window, something is happening. And maybe I should take a closer look at what projection that is being used. After all, Denmark lies on a sphere. And the scale is annoying. I want it in kilometers, not degrees.

Average number of authors in Acta Chem. Scand.

We saw the rapid decline of german as a scientific language in the last installment. But what else can we learn? Given that I do not have access to the full text papers.

Well, what about the number of authors on a given paper?

I have a hypothesis. In the beginning of time, chemistry was a lonely science, where individual scientists worked and published alone.

As the years went by, chemistry became a more collaborative science, with more scientists working together, and also publishing together.

So – the average number of authors on a paper will rise, as a function of time.

There is only one way to see if I’m right. Continue reading “Average number of authors in Acta Chem. Scand.”

Acta network part 1

Lets get to work on the network. I don’t have any citation lists, so what I’m after here, is coauthorship. I’m going to draw on some unpublished work I did on Zika-virus research.

I can begin by disregarding all papers with only one author. I want to keep the publication year – as I want to animate the network.

As always, we’ll begin by reading the data:

data <- readRDS(file="d:\\acta\\consistentdata.rda")
head(data)

Continue reading “Acta network part 1”

Animated Acta Chem. Scand.

Okay. I would like to make some networks. I would like to animate them. And I’m quietly harvesting all the pdf’s in order to OCR them, and see what I can learn from that.

Before animating networks, it might be a good idea to animate something simpler.

We went on a visit to my sister in law, and on the rather long trip (by train), I had time to read up on network-graphs in R. Some of the last pages were about animation.

so, without further ado, let me introduce this new library:

library(animation)
## Warning: package 'animation' was built under R version 3.2.5

I’ll get back to that, lets begin by getting at the data:

Continue reading “Animated Acta Chem. Scand.”