"Programmier-Service"

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
kitkat
User
Beiträge: 7
Registriert: Montag 18. August 2008, 20:07

Hallo!

Ich weiß, daß diese Frage wahrscheinlich hochgradig peinlich ist, aber: wo kann man sich denn Python-Skripte einigermaßen günstig schreiben <b>lassen</b>?

Folgendes Problem: ich habe im Rahmen eines größeren Projekts an der Uni etliche Meßreihen durchgeführt, bei denen das Meßgerät jeweils eine furchtbar unübersichtliche Datei als Ergbenis ausspuckt.

Für die schriftliche Auswertung müssen aus dieser Datei jeweils etliche Einträge, die zwar an immer verschiedenen Stellen – aber doch unter systematischen Kategorie-Namen – in dieser Datei stehen, in tabellarischer Form angegeben werden. Nachdem das händische raussuchen unmöglich lange dauert, wäre hier ein Python-Skript von Vorteil, dessen Aufgabe sich mit "Aus einer Vielzahl von Dateien die immer wieder gleichen Einträge raussuchen und diese in tabellarischer Form ausgeben" zusammenfassen läßt.

Mit diesem Problem scheine ich nicht ganz alleine zu sein, wie man an ein paar Einträgen hier im Forum der letzten Zeit erkennen kann.

Ich selber kann in Python nur sehr wenig programmieren, kann aber in bestehenden Programmen selber ein wenig herumschreiben. Ich habe mal versucht (oder genauer gesagt: gefragt), so ein Programm von einem fertigen Programmierer schreiben zu lassen, aufgrund der teils vierstelligen (!) Preise – die für einen wissenschaftlichen Angestellten einfach nicht zu stemmen sind – wurde aber nix daraus. Leider kenne ich auch keine Informatiker oder Studenten aus diesem Bereich.

Hat irgendjemand einen Tip für dieses Problem (z.B. Anlaufstellen, die so etwas günstig schreiben könnten)?
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Hier finden sich ordentliche Leute dafür ;)

Wenns nicht sofort fertig sein soll würde ich mich meine Arbeitskraft anbieten, ich mag sowas :D
Ich hätte aber erst in ~2 Wochen wieder Zeit, vielleicht auch etwas früher.

Data-Crunching ist toll!
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Kannst du mir mal ein Beispiel für die Datei geben?
Und rein interessehalber aus welchem Bereich stammen die Daten?

Wenn ich mir die verwendeten Technologien selber aussuchen kann und die Daten einigermaßen zu parsen sind mache ich das auch mal als Wochenendarbeit.


mfG Lars
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Im Vierstelligen Bereich bist du eigentlich sofort wenn du das Professionell machst ;) Billiger bekommst du es vermutlich von Studenten etc. Am besten postest du hier mal im Offtopic ein etwas konkreteres Angebot ;)
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

veers hat geschrieben:Am besten postest du hier mal im Offtopic ein etwas konkreteres Angebot ;)
Na jetzt ist es auch in Offtopic, da wo so etwas eher Platz hat.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
kitkat
User
Beiträge: 7
Registriert: Montag 18. August 2008, 20:07

Es handelt sich dabei um Daten aus dem Bereich der Röntgenstrukturanalyse. Es handelt sich dabei um sogenannte "cif"-files (_c_rystallographic _i_nformation _f_ile), die einer bestimmten Syntax bei der Eingabe folgen.

Hier mal ein Beispiel für eine der eher etwas übersichtlicheren Dateien für "Verbindung A" (_nicht_ erschrecken!):


SIEHE paste.pocoo.org (unten)



Ich habe dieses File jetzt schon mal um ein paar wirklich unnötige Einträge erleichtert, trotzdem sieht man – glaube ich – ganz gut das Problem dabei, wenn man hier von Hand was raussuchen muß.

Wünschenswert wäre es nun, wenn man aus einer großen Zahl solcher Dateien die immer gleichen Informationen rausholen könnte. Z.B. muß bei jeder Datei einmal der hinter dem Punkt "_chemical_formula_moiety" stehende Eintrag "'C4 H4 O2'" rausgefischt werden, dann der hinter dem Punkt "_chemical_formula_weight" stehende Eintrag "84.07", dann der hinter dem Punkt "_symmetry_Int_Tables_number" stehende Eintrag "19" usw.

Dabei sieht man aber schon das erste Problem: manchmal besteht die "zu fischende" Information aus einem einzigen Wort, manchmal besteht sie aus einem Ausdruck in Hochkommata, manchmal besteht sie aus einem Eintrag zwischen Strichpunkten. Mittels eines Tools (PyCIFRW) kann man diese Besonderheiten der Dateneingabe aber glattbügeln. Das Tool gibt es unter http://anbf2.kek.jp/CIF/, die Anleitung dazu unter http://anbf2.kek.jp/CIF/manual.html.


Toll wäre schlußendlich dann eine für Latex-Nutzer verwendbare Ausgabe der sechs cif-files für die Verbindungen A–F in diesem Stil:

& Verbindung A & Verbindung B & Verbindung C\\

Summenformel & \ce{ C6H12O6} & \ce{C3H8O} & \ce{C6H6} \\
Molmasse & 123.58 & 678.35 & 547.96 \\
RG-Nummer & 19 & 14 & 15\\


& Verbindung D & Verbindung E & Verbindung F\\

Summenformel & \ce{ H2O} & \ce{MnSO4} & \ce{CaH2} \\
Molmasse & 822.01 & 104.58 & 66.69\\
RG-Nummer & 52 & 18 & 10\\



Kriegt man soetwas mit Python hin? Faktisch bräuchte ich [b]nur einen Einstieg[/b] in so ein Programm (evtl. vielleicht sogar nur mal anhand dieser drei genannten Beispiele aus dem angehängten File), da ich ohnehin – je nach Wunsch des Betreuers des Projekts – den Tabellen-Aufbau modifizieren muß.
Zuletzt geändert von kitkat am Dienstag 19. August 2008, 16:38, insgesamt 1-mal geändert.
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Lad die Testdatei mal woanders hoch, beim Pasten ins Forum ist da wohl was schief gegangen, der findet nicht alle Werte.
Kannst die z.B. bei paste.pocoo.org hochladen.

Sollte das Modul dann funktionieren, ist das eine ganz arg schnelle Angelegenheit ;)
kitkat
User
Beiträge: 7
Registriert: Montag 18. August 2008, 20:07

:shock: :shock: :shock: :shock:


...das geht [b]SO[/b] fix???? :shock: :shock: :shock:



...ist mir jetzt echt peinlich :oops:


habe den Eintrag der Datei bei paste.pocoo.org hochgeladen (Paste #82687)
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

kitkat hat geschrieben:habe den Eintrag der Datei bei paste.pocoo.org hochgeladen (Paste #82687)
Dann bearbeite bitte deinen Post: Lösche den Roman und füge stattdessen den Link ein ... Antworten auf den Thread wird unmöglich.
kitkat
User
Beiträge: 7
Registriert: Montag 18. August 2008, 20:07

OK, aber wie macht man das genau?

Habe mit http://paste.pocoo.org/ bisher noch nie gearbeitet...


Kann die Datei notfalls auch per mail verschicken, liegt halt nur hier lokal am PC.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

In dem man einen Link auf das Pastebin postet, was hiermit geschehen ist. Den Roman in Deinem Threadbeitrag mußt Du schon selber löschen.

Was mich interessiert: Wozu braucht man das? Es gibt doch eine ganze Reihe von Programmen, die CIF und mmCIF verstehen.

Gruß,
Christian
kitkat
User
Beiträge: 7
Registriert: Montag 18. August 2008, 20:07

Das Verstehen von cif-files an sich ist auch gar nicht das Problem, für einzelne Tabellen gibt es sowas sicher, nur geht es hier in meinem Fall um mehrere hundert dieser cif-files, die in Tabellen gepreßt werden sollen.

Das einzelne Erstellen, Nachbearbeiten und dann Einfügen aller dieser Tabellen ist einfach furchtbar zeitaufwendig, multipliziert mit der Anzahl der cif-files kann man sich vorstellen, wieviel Zeit dann nur für diese einen Schritt der schriftlichen Projektabfassung dafür draufginge.

Außerdem wechseln die Vorstellungen des Betreuers darüber, wie diese Tabellen aussehen sollten, leider sehr häufig, so daß fertige (evtl. ja sogar kommerziell erhältliche?) Programme hierfür mit großer Wahrscheinlichkeit einfach zu unflexibel sind.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Aha. Ja, das mit den Betreuern verstehe ich - leider - gut.

Nun, in so einem Fall bietet sich Python wahrscheinlich wirklich an.

Viel Erfolg!
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Das Projekt würde dir doch einen guten Einstieg in die Python Programmierung geben. Mit dem Tutorial und etwas Hilfe aus dem Forum müsstest du das Problemlos selber schreiben können. ;)
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Jup, jetzt funzt alles :]
kitkat
User
Beiträge: 7
Registriert: Montag 18. August 2008, 20:07

@veers:


...natürlich, Du hast Recht. Ich habe mir nach dem Thread über die Schüler und Studenten mit Programmierproblemen auch ein paar Tage lang überlegt, ob ich sowas hier überhaupt fragen darf oder soll. Aber das Ganze ist bei mir im Moment ein zeitliches Problem. Prinzipiell kann ich ja auch selber Programme schreiben – immerhin habe ich in der Unterstufe (das ist jetzt aber etwas über 16 Jahre her) einige Programme in BASIC hinbekommen (BASIC – mea culpa, ich hatte eine schwere Kindheit ;-)).

Aber evtl. läßt sich mein Dilemma an einem Beispiel etwas besser erklären. Irgendwann mußte man mal Fremdsprachen lernen. Und auch, wenn man dann sogar mal Französisch, Latein usw. konnte, hat man es u. U. nie wieder gebraucht. Aber dann soll man in sehr kurzer Zeit eine ganz neue Sprache lernen (z.B. Japanisch) – eigentlich kann man Fremdsprachen lernen, man hat es ja auch schonmal geschafft, aber trotzdem ist es verdammt schwierig, wenn man faktisch "nur" ein Grammatik-Buch und ein Vokabel-Heft zur Hand hat.

Konkret muß ich also in kurzer Zeit mein BASIC-(Latein)-Wissen auf PYTHON-(Japanisch)-Wissen umstellen, nur mit dem Unterschied, daß mich ein Japaner mit schlechtem Japanisch noch verstehen wird, ein Computerprogramm aber einfach nix macht (und dabei sind die "Indentation faults" noch das geringste Problem).

Aber genug Philiosophie: ich habe den Ehrgeiz, selber mit PYTHON zu programmieren. Im Endeffekt habe ich ja auch eine vage Idee, wie die Struktur von so einem Programm ausschauen kann/soll/muß (eine Schleife über alle cif-files, die Einträge dann jeweils in Listen geschrieben, diese Listen zu einer weiteren Liste kombinieren und dann aus dieser Liste die einzelnen Eintrags-Paare ausgeben). Deswegen ja auch meine Bitte um so eine Art "Einstieg", da ich – glaube ich – aus einer funktionierenden Befehslkette sicher einiges lernen kann.

Die Detail-Probleme werden dann sicher noch einiges an Zeit (und evtl. auch viele Fragen hier im Forum) zur Folge haben:

* kann man so eine Art "Steuerungs-Datei" vorgeben, damit das Programm auch weiß, in welcher Reihenfolge es die cif-files auslesen soll?

* kann man diese Dateinamen dann auch mit in die Spalten-Überschrift der Tabelle übernehmen?

* kann man Einträge aus dem cif-File im Stil von 'P 21 21 21' in der Ausgabe als \(P\,2_1\2_1\2_1\) bekommen?

* kann man Einträge wie "yellow" aus dem cif-file in der Ausgabe als "gelb" angeben?

* kann man die Einträge aus _zwei_ Zeilen im cif-File in der Ausgabe in _einer_ Tabellen-Zeile vereinigen?


usw, usw....


Wird also in jedem Fall noch ein ziemlicher Aufstand werden...


Aber schonmal Danke an alle, die sich da ein paar Gedanken über dieses Problem machen!
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Die Detail-Probleme werden dann sicher noch einiges an Zeit (und evtl. auch viele Fragen hier im Forum) zur Folge haben:[...]
Ja, geht alles.
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Das Modul läuft übrigens Prächtig.

Eigentlich müsste ich jetzt nur noch nen paar neue Filter für jinja erstellen um das Zeug für Latex aufzubereiten :o
kitkat
User
Beiträge: 7
Registriert: Montag 18. August 2008, 20:07

@audax:


Modul = PyCIFRW?

OMG – bitte nicht zu viel Arbeit und Zeit investieren, will da niemandem den August mit wegnehmen :oops:

hmm....jinja...steige ich da dann als "blutiger Anfänger" noch soweit durch, daß ich evtl. dann diese fertigenTabellen nach Betreuer-Vorgaben verändern kann?
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

kitkat hat geschrieben:hmm....jinja...steige ich da dann als "blutiger Anfänger" noch soweit durch, daß ich evtl. dann diese fertigenTabellen nach Betreuer-Vorgaben verändern kann?
Jinja orentiert sich an Django's Templates welche Designer als Zielgruppe hat. Also vermutlich ja. Wobei ich dazu ehrlich gesagt einfach print Statements verwendet hätte ;)
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Antworten