Projektdokumentation, digitalisering av historiska jonogram
Jonosondering bakgrund
- jonosfären
- vad är jonosondering, vad är ett jonogram etc.
- varför jonosonderar vi
Projektets bakgrund
- hur mycket historiska data som det finns i arkiven, se bilaga 1.
- ett jonogram per timme, varje timme hela året, från 3 olika
stationer
- extraregistreringar vid olika kampanjer
- Från Kiruna sedan 1956 (?)
- Från Lycksele sedan 1956 (?)
- Från Uppsala sedan 1954 (?)
- vilka olika typer av jonogram, papper, 16 mm film, 35 mm film.
- varför börja digitalisera jonogram
- ha en digital referensdatabas
- system för digitalisering vid behov
- göra jonogrammen lättillgängliga
- finansiär: Kempestiftelserna
Förberedelser
- byggt ”anordningar”
- modifierat 16 mm projektor
- konstruerat ”anordning” för pappersjonogram
- konstruerat ”anordning” för 35 mm film
- köpt in kamerautrustning, material mm
- skrivit program i java för att bearbeta bilderna.
Digitalisering
- hur vi har gått tillväga
- med pappersjonogrammen; matat fram 2 jonogram i taget och
sedan tagit en bild (manuellt).
- med 35 mm film; automatiskt matat 18 bilder, sedan kontrollerat
ev skarvar.
- med 16 mm film; en film i taget (ca 2 månader/film).
- ev problem (filmen hoppar, dras (=problem med projektorn), skarvar,
felperforerade, mm) -ev åtgärder.
- tidsåtgången
- papper: 9 tim för 1 år
- 35 mm: 6 tim för 1 år
- 16 mm: 4 tim för 1 år.
Sedan tillkommer tid för att ”efterbehandla” bilderna med olika program
(DigiMain ochViewPict) och dvd-backuper.
- hur mycket vi har digitaliserat
- från Kiruna: 1980-1990
- Lycksele: 1958, 1959, 1960, 1967, 1968, 1970-1986,1988
- Uppsala: 1977-1991, 1 mån. från 1959.
Totalt ca 46 år! Men som sagt, det finns mer att ”ta av”!
Programmering
- Objektorienterade språk: Java och SmallTalk
- Excel: dokumenterat vilka år och datum från de olika stationerna som är
digitaliserade.
- Programlogiken, se bilaga 2. Skapat en egen databas.
- Jonogram från speciella händelser, med tätare jonogram än varje timme, ex
solförmörkelsen 1954, kommer att finnas på några egna webbsidor.
Övrigt
- Öppet hus i februari-03.
- Studiebesök i Sodankylä, Finland.
- Kurs i LATEX
- Litteratur (java, design pattern, UML mm)
- Backuper, dvd
- Öppet hus på hela IRF i november-03.
Bilaga 1
Kvar att digitalisera (som finns i radiolab och i arkivet 030626)
Kiruna
(År 1956-1979)
560308-560817
560829-561214
561009-570218
561220-570322
570328-570802
570603-580222
570815-571123
571212-580410
580424-580616
580530-580825
580616-580819
580819-581022
580827-581014
581022-581214
581025-590101
581214-590313
590101-590511
590630-600121
601018-610204
610204-610516
610906-611214
611214-620330
621124-731231
731231-750106
740226-740228
740327750109-760102
760102-770103
770103-780125
780125-790226
790226-800324
Lycksele
Uppsala
(År -56-57,-60-67,-69 -87,-89,-90)
600328-600408
600330-600507
600508-601008
.
601008-601113
601113-601122
(År 1954-1976)
Extra registr. okt-61,
-55, -57, -58, -59
Jonogram fr Ekenäs 1954.
Backscatterfilmer
671201-680205
1967, rulle 1
680208-680226
680228-680322
680322-680405
680417-680525
681015-681114
681114-690227
690227-690327
april-juni 1988
Jonogram (i rullar):
1987, april-juni-1988, 1989, 1990
Kartonger (kartongerna är märkta med resp. siffra)
1. Extra registreringar, Lycksele
januari – augusti 1960
januari – april 1961
2. SP1 Lycksele
SP2 Lycksele
1/4 - 31/5 1959
19/10 – 23/12 1960
3/11 1959 – 16/1 1960
november 1959
januari – december 1960
Extra registreringar, Uppsala
3. Extra registreringar, Uppsala
november 1955
januari – mars 1957
juni 1957
september – oktober 1957
oktober – november 1958
januari – oktober 1959
december 1959
Provregistreringar under 1957 Jonosond IV Uppsala
4. Extra registreringar, Uppsala
november – december 1957
januari – september 1958
december 1958
5. Extra registreringar, Uppsala
oktober – november 1961
november – december 1962
januari – juni 1963
januari – december 1964
6. Extra registreringar, Uppsala
januari – december 1965
oktober – november 1966
25/12 1975 – 4/2 1976 (satellitkörning)
7. Extra registreringar, Uppsala
januari – september 1967
oktober – november 1975
juni – september 1957
januari – september 1967
februari – mars 1957
11/3 – 16/3 1955
Extra registreringar, Lycksele
Provregistrering Lycksele
Koronastörning, halvtimmesreg.
Fixfrekvens 3Mc/s Lycksele
8. Extra registreringar, Uppsala
januari – september 1961
december 1961
januari – juni 1962
augusti – oktober 1962
9. Jonogram, Luleå
april – december 1953
januari – december 1954
januari – april 1955
november – december 1955
15/11 – 27/11 1968
Jonosfärmätningar
1. Mätapparat
2. Solförmörkelsen 1945
3. Jonosfärdata USA
10. Jonogram, Luleå
december 1947
januari – december 1952
januari – december 1953
januari – mars 1953
maj – juli 1955
april – oktober 1957
11. Extra registreringar, Lycksele
september – december 1960
maj – december 1961
maj – december 1967
12. Extra registreringar, Uppsala
Extra registreringar, Lycksele
januari – juni 1966
mars - december 1963
januari – juni 1966
20/10 – 11/11 1966
13. SP2 Lycksele
2/12 – 31/12 1958
januari – mars 1959
5/2 – 13/3 1960
24/12 – 28/11 1961
1/12-1961 – 16/10 1962
oktober – december 1962
18/3 1962
SP3 Uppsala
14. Diverse jonogram, bl a ”långa remsor” 1967
15. Extra registreringar, Lycksele
januari – december 1962
januari – februari 1963
16. Extra registreringar, Lycksele
januari – december 1964
januari – februari 1965
17. Extra registreringar, Lycksele
oktober – december 1957
januari – december 1958
mars - oktober 1959
1957 - 1958
Provregistreringar
Bilaga 2
editMap.html
Programmet startar med html-sidan ”editMap.html”. Den i sin tur startar en applet
”EditMap.java”.
Applet: EditMap.java
Parametrarna med bilderna från html-sidan hämtas.
Här läses kirunaMap.binc, lyckseleMap.binc och uppsalaMap.binc (binära fil) in. Även
kirunaFileName.txt, lyckseleFileName.txt och uppsalaFileName.txt läses in till minnet.
Metoden classInit i EditviewIonoGrmsForKiruna, EditviewIonoGrmsForLycksele och
EditviewIonoGrmsForUppsala anropas och parametrarna ...Map, ...MapSize och ...FileNames
skickas in till metoderna i de olika klasserna.
(”EditviewIonoGrmsForKiruna.classInit(kirunaMap, kirunaMapSize, kirunaFileNames)”)
EditYearPictButton initieras.
EditYearPictButton.java
Varje ruta motsvarar en pixel. Varje pixel är ett jonogram. Mellan varje år finns en pixelrad
som räknas bort.
I EdityearPictButton finns följande ”karta” (kilyup7589.jpg):
1/1-75 hr 0
1/2-75 hr 0


1/12-75 hr 23
1/2-75 hr 23
1/12-75 hr 0
Tom pixelrad
1/1-76 hr 0

-
1/12-75 hr 23
-1/12-76 hr 23
|
1/12-76 hr 23
|
|
1/12-88 hr 23
--
--
|
1/12-76 hr 0

|
|
1/12-88 hr 0

--
Bilden visar utvärderat data och är skapad mha Smalltalk.
Det finns en bild till i EdityearPictButton.java och det är All_kilyup7589.jpg. Den är gjord i
Paint och visar när det finns digitaliserade jonogram. Där det är rött på bilden finns det ej
jonogram.
Logiken med specifikt datum är gjort i denna klass. När musen dras över bilden så visas
datumet under bilden.
Vid klick med musen initieras 3 EditmonthButtons. Beroende på var i bilden man klickar,
initieras olika (indexerade) EditmonthButtons för olika stationer.
EditmonthButton.java
1/1-76 hr 0
|
1/12-76 hr 0


12 månader per gång visas och alla timmar för dagen = 24.
1/1-76 hr 23
|
1/12-76 hr 23
Härifrån får vi år, månad, dag, timme. Detta uträknat mha var i kartan vi står, latestX osv.
foF2, hPrimF och muf kurvorna visas (under bilden).
checkDates initieras. Till metoden testDate() skickas latestYear, latestMonth, latestDay för att
kontrollera att datumet är giltigt.
CheckDates.java
År, månad, dag och timme räknas om till sekunder mha javas GregorianCalendar. Resultatet
blir antal sekunder från 1/1-1970 (java epoch). Till dessa sekunder läggs mellanskillnaden
mellan 1/1-1970 och 1/1-1956 (räknat med smalltalks epoch 1/1-1901) vilket ger +
441849600.
Giltigt datum kontrolleras ex . att det inte är den 29/2 utan att samtidigt vara skottår eller att
det är den 31 april, som inte finns.
DST_OFFSET (sommartiden) är satt till 0.
Vi har bestämt oss för att ha en karta från 1956. Detta därför att tidigare jonogram än så
kommer vi (nog) inte att digitalisera. På nuvarande karta (15/9-03) är startåret 1975.
EditviewIonoGrms.java
Ur Map-filerna får vi index, vilket vi använder för att hitta rätt filnamn i FileName.txt-filerna
och vi får posForPicture vilket används för att hitta rätt bild i ”jonogramfilen” (ex."jan78Lh”).
Varje jonogram har ett eget entry i .binc-filen.
Här kan vi redigera stationMap.binc. När stationMap ändras görs ändringen mha metoder i
BincHandler.class. Vi kan lägga till en kobild och därmed förskjuta ”pekaren” för alla andra
bilder i samma fil ett steg framåt.
Vi kan även ”ta bort” en bild genom att flytta pekaren ett steg bakåt för resterande bilder i
samma fil. Ingenting ändras i själva bildfilerna utan bara i den aktuella stationMap.binc-filen.
De bilder som ”försvinner” läggs på en stack. Dessa bilder kan sedan poppas upp och visas.
Varje station har sin egen stack.
stationMap kan sparas om till en ny .binc fil.Varje gång vi sparar får vi en fil med ett nytt
filnamn.
Vi kan även ”steppa” igenom själva jonogramfilen. En bild i taget, bakåt och framåt. Hittar vi
en bild som vi vill byta ut kan vi göra det med en ”substituteknapp”.
Det finns möjlighet att ångra en gjord händelse.
EditviewIonoGrmsForKiruna.java
Underklass till EditviewIonoGrms.class.
I metoden classInit() sätts de inlästa stationMap och stationFileNames och variabeln
stationMapSize till dennes stationMap, stationFileNames och stationMapSize.
EditviewIonoGrmsForLycksele.java
Underklass till EditviewIonoGrms.class.
I metoden classInit() sätts de inlästa stationMap och stationFileNames och variabeln
stationMapSize till dennes stationMap, stationFileNames och stationMapSize.
EditviewIonoGrmsForUppsala.java
Underklass till EditviewIonoGrms.class.
I metoden classInit() sätts de inlästa stationMap och stationFileNames och variabeln
stationMapSize till dennes stationMap, stationFileNames och stationMapSize.
BincHandler.java
Läser in .binc filerna, .txt-filerna och Directory.txt-filerna.
Allt som har att göra med map-filerna, ex steppa igenom, görs i denna klass.
(När man redigrerar i EditviewIonoGrms används denna klass metoder, bl a saveMap mm.)
Härifrån får vi även posForFilename, posForPicture, filename och fileDirectory.
GramFileHandler.java
Här används singelton pattern för att vara säker på att endast en initiering av denna klass görs.
Denna klass har ansvaret för att öppna rätt jonogramfil för den timme som efterfrågas.
ShowPictures.java
Här man kan se sina utvalda jonogram i ett eget fönster. Det går att flytta runt dessa och att
spara dem till en postscript-fil. Jonogram i olika fönster kan pushas och poppas upp i
varandras fönster. Det går även att skriva kommentarer till jonogrammen.
ViewGram.java
Superklass för ViewGramDeSvnsk och ViewGramPictures.
Här läggs knapparna ”smallPictures” och ”push” till.
ViewGramDeSvnsk.java
Underklass till ViewGram.class.
Ansvaret för att hämta jonogrammen för åren 1990 – 2000.
Ansvaret för att kopiera sig självt.
ViewGramPicture.java
Underklass till ViewGram.class.
Ansvaret för att hämta jonogrammen för åren 1956 – 1990.
Ansvaret för att kopiera sig självt.
Excel
Excel har använts för att skriva in allt som är digitaliserat. Finns i filen kartaKLU.xls.
Ex:
”1959-02-01 00 00 1960-01-01 20 00 filnamn”
(startdatum starttimme startminut slutdatum sluttimme slutminut filnamn)
Detta är kopierat till nya .txt-filer, kartaK, kartaL, kartaU. I programmet Anteckningar har vi
redigerat bort stora mellanslag. (För att kunna läsa av filen via ett program skapat i Smalltalk,
se rubrik Smalltalk). Ex:
// Tagit bort saknas (i kartaKLUJan.xls)1958-01-01 0 0 1979-12-31 23 0 saknasK
1980-01-01 0 0 1980-01-18 6 0 800101-800118kh
1980-01-18 7 0 1980-02-18 6 0 800118-800218kh
Filnamnen från kartaKLU.xls har kopierats till nya txt-filer; kirunafileName.txt,
lyckselefileName.txt och uppsalafileName.txt. Ex:
//saknasK
800101-800118kh
800118-800218kh
Smalltalk
I metoden ”doSomething”:
Läser av kartaK.txt osv, räknar ut antal sekunder sedan 1/1-1901 (smalltalks epoch). Skriver
ut resultatet till filerna secListK, secListL, secListU.
Ex:
”//1798761600 2492982000 saknasK
2492985600 2494476000 800101-800118kh
2494479600 2497154400 800118-800218kh”
Dessa är vanliga textfiler. (I Smalltalk dock utan .txt ändelse i filnamnet.)
MakeStationMap.java
Läser av secListK om aktuell station är Kiruna osv. Tar bl a startSec och endSec minus
1735603200 (antalet sekunder den 1/1-1956, räknat från 1/1-1901 (smalltalks epoch)). Skapar
en ”karta”, .binc-fil, (binär fil) över index (posForFile) och position i filen (posInFile). Index
är filnamnspositionen med start på 0. Detta index matchas senare med kirunaFileName.txt för
att få filnamnet.
Position, posInFile, är bildnumret i en specifik fil.