[viesti Survo-keskustelupalstalla (2001-2013)]
Kirjoittaja: | Kimmo Vehkalahti |
---|---|
Sähköposti: | - |
Päiväys: | 31.5.2004 0:44 |
On taas iltasadun aika... viittaan eiliseen juttuuni otsikolla "Ajokilometrien laskeskelua". Lienee hyvä näyttää, että myös reissun varsinaiseen aiheeseen (melontaan!) liittyy myös liuta laskelmia, kuvia ja kaavioita joissa Suomen Upein Reissujen Virittelyn Ohjelmisto on ahkerassa käytössä. Päätin myös laittaa valikoiman papereita omalle nettisivulleni, jotta tarina tulisi vähän konkreettisemmaksi. Paperit joihin viittaan vielä alla jokaiseen erikseen, on tehty Survon PRINT-operaatiolla ja muutettu PDF-muotoon. Ne löytyvät nyt seuraavista osoitteista: http://www.helsinki.fi/%7ekvehkala/Jekku_Meloo_2004_suunnitelma.pdf http://www.helsinki.fi/%7ekvehkala/Jekku_Meloo_2004_nuotituspohja.pdf http://www.helsinki.fi/%7ekvehkala/Jekku_Meloo_2004_logistiikka.pdf http://www.helsinki.fi/%7ekvehkala/Jekku_Meloo_2004_kilometrit.pdf Kuvaan seuraavassa lyhyesti (no, en ehkä ihan lyhyesti kuitenkaan...) kyseisten dokumenttien syntyä seuraavilla otsikoilla (kopioimalla tämän jutun Survon toimituskenttään voit käyttää oheisia otsikkoja suorina siirtymiskomentoina jutun eri osien välillä): - Perustiedot reitistä ja melojista - Melontasuunnitelman laatiminen - Reitin nuotituspohjan rakentaminen - Logistiikkasuunnitelman tulostaminen - Melontakilometrien laskeskelua - Melojakohtaisten reittiprofiilien visualisointi Puheena oleva melontareissuhan on siis Suomi Meloo -kanoottiviesti, joka järjestetään tänä vuonna jo 20. kerran. Itse olen mukana 11. kertaa, ja nyt toista kertaa viime vuonna perustetun Jekku-joukkueemme kipparina. Viesti etenee viikon n. yötä päivää sopivissa pätkissä pitkin ja poikin Suomen järvi-, joki- ja merimaisemia. Reitti vaihtelee vuosittain. Tänä vuonna "kanetoidaan" Iisalmesta Kotkaan, viime vuonna mentiin puolestaan Pieksämäeltä Heinolaan. Vuonna 2000 Suomi Meloo rantautui Töölönlahdelle ja pari vuotta sitten Kokkolaan. - Perustiedot reitistä ja melojista --------------------------------- Suunnittelu alkaa yleensä tammi-helmikuussa, kun reitti julkistetaan. Tiedot voi kaivaa Suomi Meloo ry:n sivuilta http://www.suomimeloo.fi/ ja survoa niistä omaan käyttöön paremmin soveltuvan taulukon: *DATA A a,b,n,m * mAA AAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA 11.1 AAAAAAAA 11 11.1 AAAAAAAAAAAAAAAAAAAAAA 111 11 11 11 11 AAAAAAAAAAAAAAAAAAAAAAAAA * nNro Paikka Tulo V Lähtö km h Huom GT A1 A2 B1 B2 Leiri a 0 Iisalmi, uimaranta la 11.00 7 1.2 20-v lähtöloitsut 112 0 1 0 1 Iisalmi, Koljonvirta * 1 Iisalmi, Peltosalmi la 12.15 0.5 la 12.45 21 4.5 kanava 112 1 1 1 1 Iisalmi, Koljonvirta * 2 Lapinlahti, Portaanpää la 17.30 0.5 la 18.00 20 4.0 _ 112 1 1 1 1 _ * 3 Lapinlahti, Jokiniemi la 22.00 0.5 la 22.30 12 2.5 kanava 112 1 2 1 1 Kuopio, Rauhalahti * 4 Maaninka, Kasino su 01.00 1.0 su 02.00 33 6.5 selkävesiä 98 2 2 1 2 Kuopio, Rauhalahti * 5 Vuorela, Kunnonpaikka su 08.30 0.5 su 09.00 19 4.0 _ 98 2 2 2 2 Kuopio, Rauhalahti * 6 Uudistalo I, Jännevirta su 13.00 1.0 su 14.00 22 4.5 _ 99 2 3 2 2 Kuopio, Rauhalahti * 7 Riistavesi, satama su 18.30 0.5 su 19.00 22 4.5 _ 99 3 3 2 2 Kuopio, Rauhalahti * 8 Uudistalo II, Jännevirta su 23.30 0.5 ma 00.00 21 4.5 _ 99 3 3 2 3 Kuopio, Rauhalahti * 9 Kuopio, Väinölänniemi ma 04.30 1.0 ma 05.30 20 4.0 selkävesiä 98 3 4 3 3 Kuopio, Rauhalahti *10 Puutossalmi, lossiranta ma 09.30 0.5 ma 10.00 21 4.5 selkävesiä 98 4 4 3 3 Kuopio, Rauhalahti *11 Konnuksen kanava ma 14.30 1.0 ma 15.30 26 5.0 vaihdossa sulku 84 4 4 3 3 _ *12 Varkaus, Kuntoranta ma 20.30 0.5 ma 21.00 45 9.5 YÖSAFARI, kanava 85 4 5 3 4 Rantasalmi, Mansikkaniemi *13 Rantasalmi, Järvisydän ti 06.30 0.5 ti 07.00 25 5.0 _ 71 5 5 4 4 Rantasalmi, Mansikkaniemi *14 Rantasalmi, Tammenlahti ti 12.00 0.5 ti 12.30 21 4.0 kapea tie 72 5 5 4 4 _ *15 Savonlinna, uimahalli ti 16.30 1.0 ti 17.30 12 2.0 _ 72 5 6 4 4 _ *16 Savonlinna, Koivukanta ti 19.30 0.5 ti 20.00 26 5.5 ahdas/kapea tie 72 6 6 4 5 _ *17 Sulkava, Hakovirta ke 01.30 0.5 ke 02.00 17 3.0 _ 71 6 6 5 5 _ *18 Mannilanniemi ke 05.00 1.0 ke 06.00 20 4.0 _ 59 6 7 5 5 Puumala, Koskenselkä *19 Puumala, satama ke 10.00 1.0 ke 11.00 11 2.0 _ 59 7 7 5 5 Puumala, Koskenselkä *20 Hätinvirta, lossiranta ke 13.00 0.5 ke 13.30 27 5.5 aavan selän ylitys 59 7 7 5 6 _ *21 Suur-Saimaan lomakylä ke 19.00 0.5 ke 19.30 6 1.5 _ 59 7 8 6 6 Lomakeskus Saimaanranta *22 Lomakeskus Saimaanranta ke 21.00 10.5 to 07.30 16 3.5 MELAJUHLA 48 8 8 6 6 Lomakeskus Saimaanranta *23 Vehkataipale, koulu to 11.00 0.5 to 11.30 13 2.5 _ 48 8 8 6 6 Lomakeskus Saimaanranta *24 Lappeenranta, Myllysaari to 14.00 1.5 autosiirto 48 8 9 6 7 _ *25 Luumäki, Risulahti to 15.30 13 2.5 _ 48 9 9 7 7 _ *26 Kukasranta, leirikeskus to 18.00 0.5 to 18.30 32 6.5 ahdas 47 9 9 7 7 Kouvola, Tykkimäki *27 Kannuskoski pe 01.00 1.5 pe 02.30 15 3.5 siirto 1 km, koskia 47 9 10 7 7 Kouvola, Tykkimäki *28 Valkeala, Tirvan pato pe 06.00 1.0 pe 07.00 21 4.5 kanto 100 m, koskia 46 10 10 7 8 Kouvola, Tykkimäki *29 Kouvola, Tykkimäki pe 11.30 1.5 autosiirto 46 10 10 8 8 Kouvola, Tykkimäki *30 Inkeroinen pe 13.00 28 6.5 KOSKIA!, tien ylitys 34 10 11 8 8 _ *31 Hirvikoski pe 19.30 1.0 pe 20.30 18 4.0 patotie, 50 m kanto 34 11 11 8 8 Kotka, Santalahti *32 Pyhtää, Stockfors la 00.30 1.0 la 01.30 26 6.0 sulku, 7 km selkä 34 11 11 8 9 Kotka, Santalahti *33 Kotka, Santalahti la 07.30 1.0 la 08.30 15 3.5 _ 34 11 12 9 9 Kotka, Santalahti b34 Kotka, Sapokka la 12.00 20-v loppujuhla 34 12 12 9 9 _ * Tätä aineistoa tarvitaan useammissa yhteyksissä ja siihen pitää voida viitata eri toimituskentistä, joten tehdään siitä datatiedosto (samalla vaihdetaan muuttujien järjestys selailun kannalta mukavammaksi): *FILE CREATE SM2004,150,50 *Suomi Meloo 2004 - Jekku-joukkueen kyntövuorot *PVM / Maanantai, 24. toukokuuta 2004 klo 18.01 (vko 22, pvä 145/366) *FIELDS: * 1 SA_ 2 Nro vaihtopaikan numero * 2 SA_ 25 Paikka vaihtopaikan nimi * 3 SA_ 22 Huom huomautuksia * 4 NA_ 1 GT karttakirjan sivu (###) * 5 SA_ 8 Tulo tuloaika vaihtopaikalle (pp hh.mm) * 6 NA_ 4 V vaihtoon varattu aika (##.#) * 7 SA_ 8 Lähtö lähtöaika vaihtopaikalta (pp hh.mm) * 8 NA_ 1 km reitin pituus (##) * 9 NA_ 4 h reitin kestoaika (##.#) * 10 NA_ 1 A1 nuottisivujen teon apumuuttuja 1 (4/sivu) (##) * 11 NA_ 1 A2 nuottisivujen teon apumuuttuja 2 (4/sivu) (##) * 12 NA_ 1 B1 nuottisivujen teon apumuuttuja 1 (5/sivu) (##) * 13 NA_ 1 B2 nuottisivujen teon apumuuttuja 2 (5/sivu) (##) * 14 SA_ 26 Leiri leiripaikan nimi *END * *FILE COPY A TO SM2004 *FILE SHOW SM2004 Apumuuttujat A1, A2, B1 ja B2 sekä Leiri-muuttuja on lisätty taulukkoon vasta myöhemmässä vaiheessa, kun leirit on ensin selvitetty ja halutaan tehdä koko reitin monisivuinen nuotitus. GT-muuttujan arvot viittaavat Genimapin Suomi Finland GT -tiekartaston sivuihin. Alkuvaiheessa tulostukseksi kelpaa alkeellinenkin vedos, jonka saa kevyesti yllä olevasta taulukosta hyödyntämällä chapter-tekniikkaa: *............................................... *DEF Osuudet n,b * *>copy K.PS lpt1 */GV-SHOW K.PS *PRINT CUR+1,E-1 TO K.PS - include PS.DEV - [Courier(10)][line_spacing(11)][margin(200)] / [copies(3)] - shadow 7: [BOLD][REVERSE] [NORMAL] *JEKKU MELOO 2004 * Reittitiedot (15.2.2004) * - [Courier(9.5)][line_spacing(17)][margin(200)] - chapter Osuudet E *............................................... Osuudet ovat keskimäärin 20 km pituisia, mutta hajontaakin on jonkin verran. Yhteispituus on reilut 650 km. Mm. nämä faktat saadaan näkyviin pikaisella STAT-läpileikkauksella: *STAT SM2004 CUR+1 / VARS=km SUMS=1 RESULTS=0 *Basic statistics: SM2004 N=35 *Variable: km reitin pituus (##) *N(missing)=3 *min=6 in obs.#22 (21) *max=45 in obs.#13 (12) *mean=20.34375 stddev=7.921426 skewness=0.743836 kurtosis=1.276285 *sum1=651 *lower_Q=15 median=21 upper_Q=26 Kevättalven aikana rakennetaan joukkue, ts. rekrytoidaan melojat. Muistiinpanojen hallinnassakin Survo ja sen ranskalaisten viivojen tekniikka ym. ominaisuudet ovat arvokkaana apuna. Viime vuonna, kun kaiken hyvän lisäksi ostimme jengillemme kanootin, tulin säilöneeksi yli 120 kohdan verran muistiinpanoja, kaikkiaan n. 3000 riviä tekstiä yhteen toimituskenttään. Tänä vuonna tekstiä on kertynyt n. 500 riviä vähemmän (aika paljon silti); sähköposteja, tekstiviestejä jne. Kun joukkue on kasassa, voidaan jatkaa reittitietojen kanssa askartelua. Päivitetään datatiedostoa luomalla joka melojaa kohti oma muuttuja: *COUNT CUR+4,e-1,CUR+1,15 * 11 *FILE UPDATE SM2004 *FIELDS: * 15 NA_ 1 Elina_R (##) * 16 NA_ 1 Kimmo (##) * 17 NA_ 1 Sirpa (##) * 18 NA_ 1 Vsa (##) * 19 NA_ 1 Kalle (##) * 20 NA_ 1 Elina_K (##) * 21 NA_ 1 Mia_S (##) * 22 NA_ 1 Krisu (##) * 23 NA_ 1 Janne (##) eEND Näiden muuttujien varsinaiseen käyttötarkoitukseen palataan myöhemmin, mutta tässä vaiheessa riittää että liuta nimiä on esitelty. Ne tulevat vastaan myöhemmin monessa kohdassa. Nimillä ei ole mitään vastinetta todellisuudessa, mitä nyt "Kimmo" sattuu kuulostamaan tutulta. ;) - Melontasuunnitelman laatiminen ------------------------------ Ensimmäiseksi kiinnostaa melontasuunnitelma (itse asiassa se taitaa tulla tehtyä jo aiemmin, jotta voi arvioida melojien riittävyyttä). Melontasuunnitelma on taulukko (yksi A4), johon rastitetaan kunkin melojan osuudet. Tiedot siihen saadaan suoraan em. aineistosta: *MASK=AAAA--AA--------------- *FILE LOAD -SM2004 END+5 / IND=Lähtö,!MISSING (ei autosiirtoja tähän) Tulostuksen tekniset yksityiskohdat sivuutan enimmiltä osin, mutta lopputulos näyttää joka tapauksessa tällaiselta: http://www.helsinki.fi/%7ekvehkala/Jekku_Meloo_2004_suunnitelma.pdf Pari detaljia tulostuksesta voisi tässä kuitenkin mainita. Harmaat taustapalkit ja autosiirtoja symboloivat viivat on rakennettu näin: *............................................................ *PLOT /FRAME / FRAME=0 SIZE=W,H W=2750 H=55 DEVICE=PS,GRAY.PS *FRAMES=F F=0,0,W,H,-1 FILL(-1)=0,0,0,0.19 LINETYPE=[white] *............................................................ *PLOT /FRAME / FRAME=0 SIZE=W,H W=2750 H=7 DEVICE=PS,LINE.PS *FRAMES=F F=0,0,W,H,-1 FILL(-1)=0,0,0,0.91 LINETYPE=[white] *............................................................ *DEF Gray g+1,G-1 g - picture GRAY.PS,*,*-12 G *............................................................ *DEF Line l+1,L-1 l - picture LINE.PS,*,*-10 L *............................................................ Pala PRINT-kaaviosta näyttää miten kuvatiedostot GRAY.PS ja LINE.PS haetaan siististi mukaan haluttuihin paikkoihin. Tämän järjestelyn etuna on, että kuvatiedostojen sijoitteluparametrit ovat vain yhdessä paikassa. * 27 Kannuskoski pe 02.30 15 km q15 q15 q15 q15 q15 q15 q15 q15 q15 q15 q15 siirto 1 km, koskia 47 - chapter Gray - chapter Line * 28 Valkeala, Tirvan pato 07.00 21 km q21 q21 q21 q21 q21 q21 q21 q21 q21 q21 q21 q21 kanto 100 m, koskia 46 * 30 Inkeroinen 13.00 28 km KOSKIA, tien ylitys 34 - chapter Gray * 31 Hirvikoski 20.30 18 km q18 q18 q18 q18 q18 q18 q18 q18 q18 q18 q18 patotie, 50 m kanto 34 * 32 Pyhtää, Stockfors la 01.30 26 km q26 q26 q26 q26 q26 q26 q26 q26 q26 q26 q26 sulku, 7 km selkä 34 - chapter Gray * 33 Kotka, Santalahti 08.30 15 km q15 q15 q15 q15 q15 q15 q15 q15 q15 q15 q15 20-v loppujuhla 34 Hieman pidempien osuuksien kilometrit (kuten 28 ja 26 tässä) on lihavoitu, siis maalattu varjolla '1'. Rastitusruudut tulevat ZapfDingbats-fontista (varjona 'Z') q-kirjaimen kohdalta, ja niiden oheen sijoitetut km:t on maalattu '7'-varjolla. Kaaviossa on näitä varten määritelty seuraavaa: - define [M] [Swiss(12)] - shadow Z: [ZapfD(16)] [M] - shadow 7: [SwissB(6)] [M] Rastitus tapahtuu lyijykynällä, koska sitä on voitava muuttaa tarpeen mukaan maasto-olosuhteissa. Survo pärjäisi varmasti sielläkin, mutta eihän kukaan halua printteriä papereineen ruveta reissussa raahaamaan. Siispä paperit tehdään tiettyyn pisteeseen asti valmiiksi, printataan koko valikoima molempiin autoihin ja piirrellään loput käsin. (Eikä kaikkea pidä tehdäkään koneella - kynän ja paperin ääressä työskentely on hauskaa, kun on hyvät pohjat!) - Reitin nuotituspohjan rakentaminen ---------------------------------- Seuraavana on vuorossa kaikkein yksityiskohtaisin paperi, nuotituspohja. Siitä nähdään sekä melontaviestin kulku osuuksittain että molempien autojen liikkeet leireihin ja vaihtopaikoille. Tämä paperi kertoo aina, missä kunkin joukkueen jäsenen on milloinkin oltava. Sen rooli on siis hyvin keskeinen ja hektinen. Myös nuotituspohja täytetään lyijykynällä, jotta ylläpito onnistuu missä olosuhteissa tahansa. (Nuotituksen piirtely kynällä vasta hauskaa onkin!) Tämänvuotinen 9-sivuinen pohja näyttää seuraavalta: http://www.helsinki.fi/%7ekvehkala/Jekku_Meloo_2004_nuotituspohja.pdf Kynällä kirjoitellaan keskelle melojat ja reunoille autoilijat siten että autoille piirretään kulkukaaviot leirien ja vaihtopaikkojen välille. Datasta saadaan mukaan mausteeksi samoja yksityiskohtia kuin suunnitelmaan eli tulo- ja lähtöaikoja, taukojen kestoja, melontamatkan pituuksia jne. Nuotituspohjan tulostuksen lähtökohtana on jälleen sama aineisto kuin edellä, ja FILE LOAD on taas hyödyksi. Tällä kertaa sitä käytetään FORMAT-täsmennyksen säestyksellä. Tulostusmuotoa säätelevä kaavio näyttää seuraavalta (tosi asiassa hieman värikkäämmältä, mutta varjomerkit eivät valitettavasti näy netissä - idea tullee kuitenkin selväksi): *FORMAT KYNTÖ TT T * - {vaihtopaikka} T T T *8.4 * [Nro]. [Paikka] - {tiedot} T T T T *7.1 * Tulo ; [Tulo] ([V] h) * Lähtö ; [Lähtö] * Matka ; [km] km ([h] h) T T *7.1 - {huomautuksia} * GT [GT][Huom] - {leirintä} * Leiri ; [Leiri] - {tiedot} TT T * T % {melojat} - picture MELOO.PS,*+xxx,*+yyy,1,yscale / $ [Nro] - *END p / - / new page! q - / game over! Tässä tulee käyttöä jo alussa nähdyille apumuuttujille B1 ja B2, sillä käytännön kannalta on tärkeää saada sivunvaihdot sujumaan niin että kunkin sivun viimeinen vaihtopaikka toistuu seuraavan sivun alussa. Jätän toteutuksen yksityiskohdat "harjoitustehtäväksi". Avainasemassa on joka tapauksessa SELECT-täsmennys. LINES-täsmennys sen sijaan liittyy REPLACE-komentoihin, jotka viimeistelevät FILE LOAD:in aikaansaannoksia. (Osassa niistäkin on todellisuudessa varjomerkkejä, joten tämä esitys netissä ei kykene venymään ihan kaikkiin yksityiskohtiin.) *FORMAT=KYNTÖ LINES=A+1,END SELECT=s1+s2 * *FILE SHOW SM2004 * *FILE LOAD SM2004 END+1 / s1=B1,1 s2=B2,1 *COPY p+1,p+2,END-1 *FILE LOAD SM2004 END+1 / s1=B1,2 s2=B2,2 *COPY p+1,p+2,END-1 *FILE LOAD SM2004 END+1 / s1=B1,3 s2=B2,3 *COPY p+1,p+2,END-1 *FILE LOAD SM2004 END+1 / s1=B1,4 s2=B2,4 *COPY p+1,p+2,END-1 *FILE LOAD SM2004 END+1 / s1=B1,5 s2=B2,5 *COPY p+1,p+2,END-1 *FILE LOAD SM2004 END+1 / s1=B1,6 s2=B2,6 *COPY p+1,p+2,END-1 *FILE LOAD SM2004 END+1 / s1=B1,7 s2=B2,7 *COPY p+1,p+2,END-1 *FILE LOAD SM2004 END+1 / s1=B1,8 s2=B2,8 *COPY p+1,p+2,END-1 *FILE LOAD SM2004 END+1 / s1=B1,9 s2=B2,9 *COPY q+1,q+2,END-1 / "game over" *REPLACE " .",".",C *REPLACE " km"," km",C *REPLACE " ( "," (",C *REPLACE " ;",":",C *REPLACE " ;",":",C *REPLACE "{","[",C *REPLACE "}","]",C *REPLACE "Tulo : -","",C *REPLACE "Lähtö: - ","",C *REPLACE "Matka: - km ( - h)","",C *REPLACE "( - h)","",C *REPLACE "Leiri: _","",C *REPLACE " _ "," ",C *REPLACE "[melojat]","250",C *REPLACE "xxx","100",C *REPLACE "yyy","035",C *REPLACE "yscale","0.625",C *REPLACE "$ ","$ ",C * */MELOO-NUOTIT / viimeistelee Suomi Meloo -nuotit Joukko REPLACE-komentoja muuntelee todellakin FILE LOAD:in tulostusta, esim. muuttaa FORMAT-kaaviossa olevien "{leirintä}"-, {tiedot}"- ym. koodausten sulut hakasuluiksi, jotta niitä voidaan hyödyntää PRINT- operaatiossa (hakasuluilla on oma merkityksensä FORMAT-kaaviossa, siksi tämä puljailu). PRINT:in yhteydessä nämä määritellään näin: - define [tiedot] [Swiss(13)][line_spacing(13)] - define [leirintä] [Swiss(8)][line_spacing(0)] Jatkuvalla aktivoinnilla täräytettävä hässäkkä päättyy sukrokutsuun, joka väittää viimeistelevänsä nuotit. Vähän alempaa kentästä löytyykin seuraavanlainen kohta: *Sukro, joka tekee loput likaiset työt: * *TUTSAVE MELOO-NUOTIT / viimeistelee Suomi Meloo -nuotit (KV 4.5.2003) (18.5.2003) (24.5.2004) / / - autosiirroista ym. melontaviiva pois / - leirikohtiin nämä: (picture MELOO:n alapuolelle) / *------------------ / - picture LEIRI.PS,*-450,*+250,1,1 / - picture LEIRI.PS,*+1150,*+250,1,1 / *------------------ / *{jump A,A,1} / autosiirrot: *{search}$ 24{R}{line start}{ins} /{ins} *{search}$ 29{R}{line start}{ins} /{ins} / ym. (peruutettavat vuorot): *{search}$ 30{R}{line start}{ins} /{ins} *{jump A,A,1} / leirit: *{search}$ 1{R}{call *-LEIRI} *{search}$ 3{R}{call *-LEIRI} *{search}$ 5{R}{call *-LEIRI} *{search}$ 10{R}{call *-LEIRI} *{search}$ 13{R}{call *-LEIRI} *{search}$ 19{R}{call *-LEIRI} *{search}$ 22{R}{call *-LEIRI} *{search}$ 27{R}{call *-LEIRI} *{search}$ 29{R}{call *-LEIRI} *{search}$ 31{R}{call *-LEIRI} *{search}$ 33{R}{call *-LEIRI} *{jump A,A,1} *{end} * *TUTSAVE MELOO-LEIRI *{line start}{d2}{u2}{ins line}{ins line}{u}{l4}--{u2}{r} * picture LEIRI.PS,*-450,*+250,1,1{R} * picture LEIRI.PS,*+1150,*+250,1,1{R} *{end} Tästä ja em. lopputuloksesta voi ainakin jokainen sukroja tehnyt nähdä mitä tuo sukro (oik. sukroperhe) tekee. - Logistiikkasuunnitelman tulostaminen ------------------------------------ Ajokilometrejä koskevassa jutussani sivusinkin jo logistiikkapaperia, eikä siinä ole sinänsä mitään kovin ihmeellistä. Lopputulos näyttää tällaiselta: http://www.helsinki.fi/%7ekvehkala/Jekku_Meloo_2004_logistiikka.pdf Ehkä sen verran raotan tätäkin paperia, että näytän pienen kikan, jolla vasemman reunan päivämäärät on tulostettu. Ne olivat ensimmäisessä versiossa omilla riveillään (veivät siis yhden tulostusrivin), mutta kun alkoi tulla tilanahtautta, päätin siirtää ne vasempaan marginaaliin. En halunnut siirrellä koko tulostettavana olevaa taulukkoa, joten käytin tämännäköistä konstia: - define [PVÄ] [STORE(P)][PSAVE][margin(100)][SwissB(11)][S] - define [/PVÄ] [S][M][PRESTORE] - shadow W: [PVÄ] [/PVÄ] - control P: [JUMP(P)] - UAjat viestin saapumisaikoja. Ajokilometrit vaihtoihin yhteen suuntaan. U TT T T ( ) T T T *6.0 *klo puuha kohde ajokm auto hlöt huom * Upe 11.6. P12.00 Siirto Iisalmi 470 Golf * Ajo Iisalmi 470 Yaris * Leiri Iisalmi, Koljonvirta * * Yö 1 Iisalmi, Koljonvirta 7 teltat * Ula 12.6. P11.00 Siirto Iisalmi, uimaranta 2 Golf *12.15 Vaihto 1 Iisalmi, Peltosalmi 12 Yaris Tässä siis "pe 11.6." ja "la 12.6." on maalattu 'W':llä, joka on edellä määritelty sopivasti niin että hypätään hetkeksi vasempaan reunaan (1 cm paperin reunasta), kirjoitetaan lihavoidulla 11 pisteen Helveticalla ao. teksti ja palataan sitten siihen fonttiin missä oltiin. Seuraavan rivin kontrollimerkki 'P' huolehtii siitä, että hypätään kohtaan jossa oltiin ennen päivämäärän asettamista. Kaaviossa on ulkoasun viilailuun liittyen muitakin varjomerkkejä (ykkösiä ja kuutosia), mutta ne eivät näy tässä. - Melontakilometrien laskeskelua ------------------------------ Edellisessä jutussani laskeskeltiin ajokilometrejä, mutta nyt päästään laskemaan melontakilometrejä, mikä onkin astetta haastavampi tehtävä. Tätä varten perustetussa toimituskentässä on ensinnäkin globaali osio, jossa määritellään kiintoisia, sanoisinko "tähdellisiä" täsmennyksiä: * *GLOBAL* * * *MELOJAT=Janne,Krisu,Elina_R,Sirpa,Kimmo,Kalle,Vsa,Elina_K,Mia_S * *SIIRROT=S1+S2+S3+O1 S1=Nro,24 S2=Nro,29 S3=Nro,34 O1=Nro,30 * *OSUUDET=!(S1+S2+S3+O1) (O=ohitus, kalusto ei sovi ao. osuudelle) Tähdet kertovat, kaverit melovat. Siirretään melontatiedot dataan (vanha kunnon PUTEND:kin saa arvoistaan käyttöä!): *............................................................ *Melontaosuuksien nollaus: *TRANSFORM SM2004 BY 0 / VARS=*MELOJAT *............................................................ *Autosiirto-osuuksien tyhjennys: *TRANSFORM SM2004 BY MISSING / VARS=*MELOJAT SELECT=*SIIRROT *............................................................ *Kyntövuorot jaettu, laitetaan ylös: (ks. GLOBAL) *(tarkistus melonnan jälkeen!) * *PUTEND CUR+1,CUR+9,=km *Elina_R=km *Kimmo=km *Sirpa=km *Vsa=km *Kalle=km *Elina_K=km *Mia_S=km *Krisu=km *Janne=km * *FILE SHOW SM2004 / aktivoi data ennen seuraavia! Näitä seuraavissa muunnoksissa on taas hyödynnetty perusdataa ja FILE LOAD:ia, jolloin on saatu selkeästi dokumentoitu kohta käsin (rastitusten perusteella) päivitettäville melojatiedoille: *Käsityövaihe: melojien nimet osuuksittain tähän! * ||||||||||||| *VAR Elina_R Kalle / IND=Nro,0 Iisalmi, uimaranta *VAR Janne Sirpa / IND=Nro,1 Iisalmi, Peltosalmi *VAR Krisu Vsa / IND=Nro,2 Lapinlahti, Portaanpää *VAR Kimmo Kalle / IND=Nro,3 Lapinlahti, Jokiniemi *VAR Kimmo Kalle / IND=Nro,4 Maaninka, Kasino *VAR Janne Elina_R / IND=Nro,5 Vuorela, Kunnonpaikka *VAR Sirpa Vsa / IND=Nro,6 Uudistalo I, Jännevirta [...liuta rivejä poistettu...] *VAR Kalle Elina_K / IND=Nro,28 Valkeala, Tirvan pato *VAR Elina_R Kimmo / IND=Nro,31 Hirvikoski *VAR Elina_K Mia_S / IND=Nro,32 Pyhtää, Stockfors *VAR Sirpa Vsa / IND=Nro,33 Kotka, Santalahti * *FILE SHOW SM2004 *................ *Nollien tyhjennys: *TRANSFORM SM2004 BY if(X=0)then(MISSING)else(X) / VARS=*MELOJAT *................ *FILE SHOW SM2004 / FIELD=Leiri Näiden muunnosten jäljiltä näkymä datasta "melojamuuttujien" kohdalta on nyt tällainen (snapshot FILE LOAD:illa, joka pätkii muuttujien nimet koska esitysformaatiksi oli FILE UPDATE:ssa valittu "##"): El Ki Si Vs Ka El Mi Kr Ja 7 7 21 21 20 20 12 12 33 33 19 19 22 22 [...vastaava liuta rivejä poistettu...] 21 21 18 18 26 26 15 15 Lasketaan näistä tiedoista keskeiset tunnusluvut: kilometrit yhteensä, osuuksien lukumäärä sekä lyhimmän ja pisimmän osuuden pituudet (km). Koko roska hoituu yhdellä MINSTAT-komennolla, jonka tulosmatriisia (STAT.M) hieman muokataan MAT-alkuisilla matriisioperaatioilla: *MINSTAT SM2004 / VARS=*MELOJAT *MAT DIM STAT.M /* rowSTAT.M=9 colSTAT.M=5 *MAT SM2004=ZER(rowSTAT.M,colSTAT.M+1) *MAT SM2004(1,1)=STAT.M *MAT M=SM2004(*,mean) *MAT N=SM2004(*,N) *MAT TRANSFORM M BY N AND X#*Y# *MAT M(0,1)="sum" *MAT SM2004(1,colSTAT.M+1)=M *MAT NAME SM2004 AS Jekku_meloo_2004 Lopputulos on siisti ja tiivis taulukko. Valitaan vielä mitkä sarakkeet tulostetaan ja missä järjestyksessä; LOADM on kätevä näissä: *LOADM SM2004 (C3) CUR+2 / COLUMNS=6,3,4,5 * *Jekku_meloo_2004 * sum N min max *Janne 61 3 19 21 *Krisu 146 7 15 27 *Elina_R 113 7 7 25 *Sirpa 137 7 15 22 *Kimmo 185 9 6 33 *Kalle 193 9 7 45 *Vsa 191 8 11 45 *Elina_K 159 8 12 27 *Mia_S 61 4 6 26 Melojien järjestys taulukossa on sama kuin esim. melontasuunnitelmassa, mikä seuraa *GLOBAL*-kentässä olleesta *MELOJAT-täsmennyksestä. Datassa järjestys on toinen, mutta sitä ei näin tarvitse alkaa muutella siinä vaiheessa kun melojien looginen esitysjärjestys on kiinnitetty. - Melojakohtaisten reittiprofiilien visualisointi ----------------------------------------------- Seuraavaksi tehdään graafinen esitys melontaosuuksista, kilometreistä ja vähän muustakin. Kyse on eräänlaisista reittiprofiileista jokaiselle melojalle erikseen mutta samalla koko joukkueelle: http://www.helsinki.fi/%7ekvehkala/Jekku_Meloo_2004_kilometrit.pdf Kun pohdin kyseisen kuvasarjan rakentamista ensi kertaa (vuonna 2003), keksin hyödyntää silloin vasta vuoden verran mukana ollutta toimintoa, nimittäin FILE LOAD:in erikoismuotoa, jossa saadaankin luetteloita aineiston *muuttujista* ehdollisesti havaintoarvojen perusteella. (Yleensähän FILE LOAD:illa luetteloidaan *havaintoja*, kuten edelläkin jo moneen otteeseen.) Tässä aluksi näyte siitä, mistä suurinpiirtein on kysymys: *FILE LOAD SM2004 CUR+3 / SELECT=*OSUUDET VARS=*MELOJAT *LIST_VARIABLES=Lähtö,1,100 (= joka lähdöstä mjat joiden arvo on 1-100) * *la 11.00: Elina_R Kalle *la 12.45: Janne Sirpa *la 18.00: Krisu Vsa *la 22.30: Kimmo Kalle *su 02.00: Kimmo Kalle *su 09.00: Janne Elina_R *su 14.00: Sirpa Vsa [...vastaava liuta rivejä poistettu kuin edellä...] *pe 07.00: Kalle Elina_K *pe 20.30: Elina_R Kimmo *la 01.30: Elina_K Mia_S *la 08.30: Sirpa Vsa Tämäkin on hauska lista. Sitä ei kuitenkaan tarvita, vaan varsinainen profiilien piirtodata syntyy saman operaation pienellä modifikaatiolla, nimittäin lisäparametrilla 'T' tuohon LIST_VARIABLES-täsmennykseen (kaavioiden välillä on tietysti rajarivejä, mutten niitä tähän aina jaksa ottaa mukaan): *FILE LOAD SM2004 END+2 / SELECT=*OSUUDET VARS=*MELOJAT *LIST_VARIABLES=Lähtö,1,100,T (= ed. lisäksi ko. arvo; muotoilu toisin) T niin kuin tällöin saadaan T niin kuin toisenlainen luettelo: *la 11.00 * Elina_R ( 7) * Kalle ( 7) *la 12.45 * Janne (21) * Sirpa (21) *la 18.00 * Krisu (20) * Vsa (20) *la 22.30 * Kimmo (12) * Kalle (12) *su 02.00 * Kimmo (33) * Kalle (33) *su 09.00 * Janne (19) * Elina_R (19) *su 14.00 * Sirpa (22) * Vsa (22) [...vastaava liuta rivejä poistettu...] *pe 07.00 * Kalle (21) * Elina_K (21) *pe 20.30 * Elina_R (18) * Kimmo (18) *la 01.30 * Elina_K (26) * Mia_S (26) *la 08.30 * Sirpa (15) * Vsa (15) Sulkuihin (eli muuttujille FILE UPDATE:n yhteydessä määriteltyihin esitysformaatteihin) tulevat nyt ao. muuttujien kunkin havainnon kohdalla saamat arvot, ts. melojien (jotka ovat muuttujia!) km:t. Tämä oli sen verran ovelaa, että oivallettuanikin sen jouduin vielä pari kertaa miettimään uudelleen. Mutta onpahan nokkela operaatio tuo FILE LOAD:in laajennus, nimittäin tästä saadaan melkoisen mukavasti aikaan data jossa on kaikki piirtämiseen tarvittava tauhka mukana. Tässä kohtaa olen mieluusti antautunut pienoiseen käsin tehtävään osuuteen, jossa olen osittain hyödyntänyt tutoriaalista moodia (eli sukron määrittelyä opettamalla halutun näppäinsekvenssin Survolle ja antamalla sen toistaa sitä riittävän monta kertaa) sekä tietysti kosketuslaskentaa. Kivan pikku voimistelun jälkeen kentässä on data: *DATA OSUUDET *Nimi km aika *Elina_R 7 11 0 11.00 *Kalle 7 11 *Janne 21 12.75 0 12.45 *Sirpa 21 12.75 *Krisu 20 18 0 18.00 *Vsa 20 18 *Kimmo 12 22.5 0 22.30 *Kalle 12 22.5 *Kimmo 33 26 1 02.00 *Kalle 33 26 *Janne 19 33 1 09.00 *Elina_R 19 33 *Sirpa 22 38 1 14.00 *Vsa 22 38 [...taas vastaava liuta rivejä poistettu...] *Kalle 21 151 6 07.00 *Elina_K 21 151 *Elina_R 18 164.5 6 20.30 *Kimmo 18 164.5 *Elina_K 26 169.5 7 01.30 *Mia_S 26 169.5 *Sirpa 15 176.5 7 08.30 *Vsa 15 176.5 joten voidaan lähteä vihdoin piirtelemään. Piirroskaavio on kasattu niin ettei globaalia kenttää tarvita vaan yhteiset täsmennykset ovat parissa kasassa ja melojakohtaiset määrittelyt PLOT-komentojen perässä samalla rivillä. Näin rajarivejä ei myöskään tarvita: *YSCALE=0(10)50 XLABEL= YLABEL=[Swiss(7)][rot(90)][move(-90,-60)],km *FRAME=6 XDIV=0,1,0 YDIV=0,1,0 HEADER= *XSCALE=[Swiss(10)][move(50,0)],& * 0:la,24:su,48:ma,72:ti,96:ke,120:to,144:pe,168:la,180:?_ * * LINE2=[line_width(6)][line_type(0)],aika,0 LINE=6 * PEN=[line_width(0)][line_type(0)][move(0,0)][rot(0)][SwissB(15)] *LINETYPE=[line_width(0)][line_type(0)][move(0,0)][rot(0)][Swiss(7)] * SIZE=1200,150 GRID=[line_type(1)],X TEXT=Meloja * *PLOT OSUUDET aika km / CASES=Nimi:Elina_R DEVICE=PS,SM2004_Elina_R.PS Meloja=Elina_R,-400,100 *PLOT OSUUDET aika km / CASES=Nimi:Kimmo DEVICE=PS,SM2004_Kimmo.PS Meloja=Kimmo,-400,100 *PLOT OSUUDET aika km / CASES=Nimi:Sirpa DEVICE=PS,SM2004_Sirpa.PS Meloja=Sirpa,-400,100 *PLOT OSUUDET aika km / CASES=Nimi:Vsa DEVICE=PS,SM2004_Vsa.PS Meloja=Vsa,-400,100 *PLOT OSUUDET aika km / CASES=Nimi:Kalle DEVICE=PS,SM2004_Kalle.PS Meloja=Kalle,-400,100 *PLOT OSUUDET aika km / CASES=Nimi:Elina_K DEVICE=PS,SM2004_Elina_K.PS Meloja=Elina_K,-400,100 *PLOT OSUUDET aika km / CASES=Nimi:Mia_S DEVICE=PS,SM2004_Mia_S.PS Meloja=Mia_S,-400,100 *PLOT OSUUDET aika km / CASES=Nimi:Krisu DEVICE=PS,SM2004_Krisu.PS Meloja=Krisu,-400,100 *PLOT OSUUDET aika km / CASES=Nimi:Janne DEVICE=PS,SM2004_Janne.PS Meloja=Janne,-400,100 Melojien nimet siirtyvät kätevästi eri paikkoihin blokkisiirtoina. Kuvasarja syntyy lopulta yhdistämällä PLOT:illa tehdyt PostScript-kuvat PRINT-operaatiolla yhdeksi PostScript-tiedostoksi. Esimerkiksi parin ensimmäisen melojan osalta tarvittavat rivit ovat: % 220 - picture SM2004_Janne.PS,*,* - [PSAVE][STORE(X)][POINT(1830,2390)] TT ( ) *yht 3 *km 61 *min 19 *max 21 T - [JUMP(X)][PRESTORE] % 220 - picture SM2004_Krisu.PS,*,* - [PSAVE][STORE(X)][POINT(1830,2170)] TT ( ) *yht 7 *km 146 *min 15 *max 27 T - [JUMP(X)][PRESTORE] Samalla tulevat poimituiksi mukaan keskeiset tunnusluvut, jotka saatiin edellä MINSTAT-komennon ja matriisitulkin avulla. Tässä niitä on vielä pyöritelty TRANSP-, COPY- ja FORM-komennoilla seuraavaan tapaan: *Jekku_meloo_2004 *XXXXXXX sum N min max *Janne 61 3 19 21 *Krisu 146 7 15 27 *Elina_R 113 7 7 25 *Sirpa 137 7 15 22 *Kimmo 185 9 6 33 *Kalle 193 9 7 45 *Vsa 191 8 11 45 *Elina_K 159 8 12 27 *Mia_S 61 4 6 26 * *TRANSP CUR-11 CUR-2 CUR+2 * *XXXXXXX Janne Krisu Elina_R Sirpa Kimmo Kalle Vsa Elina_K Mia_S *sum 61 146 113 137 185 193 191 159 61 *N 3 7 7 7 9 9 8 8 4 *min 19 15 7 15 6 7 11 12 6 *max 21 27 25 22 33 45 45 27 26 * *COPY CUR-6 CUR-2 CUR+2 * *XXXXXXX Janne Krisu Elina_R Sirpa Kimmo Kalle Vsa Elina_K Mia_S *sum 61 146 113 137 185 193 191 159 61 *N 3 7 7 7 9 9 8 8 4 *min 19 15 7 15 6 7 11 12 6 *max 21 27 25 22 33 45 45 27 26 * *AAAAA 111 111 111 111 111 111 111 111 111 * *FORM CUR-7 CUR-4 CUR-2 Lopuksi on vaihdettu sum- ja N-rivien paikkaa (alt-F10 + F2-alt-F9 on näppärä siihen) ja nimetty nämä rivit uudelleen ("yht" ja "km"). Lopuksi on blokkeina siirrelty melojakohtaiset tunnusluvut PRINT- kaavioon paikoilleen. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- On jo unihiekan heittämisen aika... Sen vielä haluaisin sanoa, että olisi todella kiinnostavaa nähdä miten tässä kuvattuja puhdetöitä punnerretaan ns. "kansainvälisillä" ohjelmistoilla. Minulla on ollut melontasuunnitelmassa ja nuotituspohjassa esikuvana Excelillä tehdyt paperit, jotka oli kehitetty siinä joukkueessa jossa aikaisemmin olin mukana (ennen Jekun perustamista). Olen kuitenkin kehitellyt niitä huomattavasti yksityiskohtaisemmiksi sekä keksinyt uusia, mm. tässäkin esitellyt logistiikkapaperin sekä reittiprofiilit (muita ovat mm. editoriaalista laskentaa hyödyntävä kustannusarviolaskelma, melojien ja leiripaikkojen yhteystietolomake sekä suunniteltujen ja toteutuneiden melontakilometrien vertailugraafi). Kaikki kulkevat muuten kätevästi sponsorillemme ominaisen oransseissa kansioissa. :) Mielestäni tärkein näkökohta tässä on *toistettavuus*, dokumentoinnin ohella. Nyt pääsin molempia testaamaan, kun tein paperit toista kertaa, eikä tarvinnut (tietenkään) pettyä. Automaation ja käsityön suhde vaikuttaa nyt optimaaliselta, mutta sitä voi tarvittaessa säätää edelleen. En kuitenkaan usko että kypsyn noiden muutamien kohtien käsin vääntämiseen, kun kyse on kerran vuodessa tehtävästä työstä. Ja lyijykynävaiheista en edes halua luopua; niillä on oma oleellinen funktionsa sekä valmisteluvaiheissa että viestin kuluessa. Ehkä näistä jutuista ei ole syytä tämän pidemmälti kirjoittaa, mutta lupaan vastailla mikäli aihetta ilmenee. En kuitenkaan melontaviikolla, sillä silloin koneeni on pitkästä aikaa tyhjänpanttina ja minä - no, se selviää tietenkin nuoteista. :) terv. Jekun kippari Kimmo
Vastaukset: |
---|
Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!