From fc22eea6eb3349da756a9a0f00cdb92984defe0e Mon Sep 17 00:00:00 2001 From: wyq Date: Sat, 8 Feb 2025 17:18:19 +0800 Subject: [PATCH] update __getitem__ function in MemberVariable class --- .../java/org/meteoinfo/console/JConsole.java | 1 + .../org/meteoinfo/console/StringUtil.java | 2 +- .../meteoinfo/console/jython/JIntrospect.java | 1 + .../data/meteodata/netcdf/NCUtil.java | 4 +- meteoinfo-lab/milconfig.xml | 4 +- .../mipylib/dataset/dimvariable$py.class | Bin 52417 -> 52896 bytes .../pylib/mipylib/dataset/dimvariable.py | 23 ++++++--- .../mipylib/numeric/core/_dtype$py.class | Bin 16698 -> 17092 bytes .../pylib/mipylib/numeric/core/_dtype.py | 9 ++++ .../pylib/mipylib/numeric/core/_ndarray.py | 4 ++ .../org/meteoinfo/ndarray/math/ArrayMath.java | 44 ++++++++++++++++++ .../org/meteoinfo/ndarray/math/ArrayUtil.java | 2 +- 12 files changed, 83 insertions(+), 11 deletions(-) diff --git a/meteoinfo-console/src/main/java/org/meteoinfo/console/JConsole.java b/meteoinfo-console/src/main/java/org/meteoinfo/console/JConsole.java index ee5e39ae..c5a1d245 100644 --- a/meteoinfo-console/src/main/java/org/meteoinfo/console/JConsole.java +++ b/meteoinfo-console/src/main/java/org/meteoinfo/console/JConsole.java @@ -654,6 +654,7 @@ public class JConsole extends JScrollPane private void append(String string) { if (string.length() > 10000) { string = string.substring(0, 10000); + string = string + "\n..."; } string = StringUtil.unicodeToString(string); int slen = textLength(); diff --git a/meteoinfo-console/src/main/java/org/meteoinfo/console/StringUtil.java b/meteoinfo-console/src/main/java/org/meteoinfo/console/StringUtil.java index 60db1fbf..9a444873 100644 --- a/meteoinfo-console/src/main/java/org/meteoinfo/console/StringUtil.java +++ b/meteoinfo-console/src/main/java/org/meteoinfo/console/StringUtil.java @@ -94,7 +94,7 @@ public class StringUtil { } /** - * Convert unicode string to character string + * Convert Unicode string to character string * * @param unicodeString Unicode string * @return Character string diff --git a/meteoinfo-console/src/main/java/org/meteoinfo/console/jython/JIntrospect.java b/meteoinfo-console/src/main/java/org/meteoinfo/console/jython/JIntrospect.java index 42837f6b..f17e7cbf 100644 --- a/meteoinfo-console/src/main/java/org/meteoinfo/console/jython/JIntrospect.java +++ b/meteoinfo-console/src/main/java/org/meteoinfo/console/jython/JIntrospect.java @@ -148,6 +148,7 @@ public class JIntrospect implements NameCompletion { String name; for (int i = 0; i < plist.__len__(); i++) { name = plist.get(i).toString(); + //list.add(name); if (!name.contains("__")) { list.add(name); } diff --git a/meteoinfo-data/src/main/java/org/meteoinfo/data/meteodata/netcdf/NCUtil.java b/meteoinfo-data/src/main/java/org/meteoinfo/data/meteodata/netcdf/NCUtil.java index 0d534ce1..670c1a69 100644 --- a/meteoinfo-data/src/main/java/org/meteoinfo/data/meteodata/netcdf/NCUtil.java +++ b/meteoinfo-data/src/main/java/org/meteoinfo/data/meteodata/netcdf/NCUtil.java @@ -376,10 +376,10 @@ public class NCUtil { * * @param parentArray The ucar ArrayObject with ArraySequence elements * @param memberName Member name - * @param index Station index + * @param index Sequence index * @return Read data array */ - public static Array readSequenceStation(ucar.ma2.ArrayObject parentArray, String memberName, + public static Array readSequence(ucar.ma2.ArrayObject parentArray, String memberName, int index) throws IOException { int n = (int) parentArray.getSize(); ucar.ma2.ArrayStructure sArray = (ucar.ma2.ArrayStructure) parentArray.getObject(index); diff --git a/meteoinfo-lab/milconfig.xml b/meteoinfo-lab/milconfig.xml index 9dec9803..41d3e81b 100644 --- a/meteoinfo-lab/milconfig.xml +++ b/meteoinfo-lab/milconfig.xml @@ -21,10 +21,12 @@ + + @@ -32,5 +34,5 @@
- + diff --git a/meteoinfo-lab/pylib/mipylib/dataset/dimvariable$py.class b/meteoinfo-lab/pylib/mipylib/dataset/dimvariable$py.class index 6af387f04a5906f69989fb806e71035732d6fc22..9da9d7cde7600cca2c84a9ef5de6b008e45b03d1 100644 GIT binary patch delta 14047 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 delta 13664 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%0Ao0zRuglzE|41uz#^10_@R}8Q+_u zn|HBal{(7WSi7Q!=i}S74Gy&C;QwRV%o$zq|6!f(cP`*#;2eS<=`~xe g?FuyE9)#JZp%qUbYpb%&5Xd;&Ok0gW8f~@z1K3LwMgRZ+ diff --git a/meteoinfo-lab/pylib/mipylib/dataset/dimvariable.py b/meteoinfo-lab/pylib/mipylib/dataset/dimvariable.py index f4148a11..fed8d22c 100644 --- a/meteoinfo-lab/pylib/mipylib/dataset/dimvariable.py +++ b/meteoinfo-lab/pylib/mipylib/dataset/dimvariable.py @@ -668,21 +668,32 @@ class MemberVariable(DimVariable): self._ncfile = datainfo.getFile() self._ncvar = self._ncfile.findVariable(self.name) - def __getitem__(self, key=0, station=None): + def __getitem__(self, key): + """ + Read array data from the variable. + + :param key: (*int, complex or slice*) For `int`, key means record index. For `complex`, the image + of the complex is the sequence index. For `slice`, `:` to read all data, otherwise the start + of the slice is the sequence index. + + :return: (*NDArray*) Data array. + """ if isinstance(key, int): return self.read_array(record=key) + elif isinstance(key, complex): + return self.read_array(seq=int(key.imag)) elif isinstance(key, slice): if key == slice(None): return self.read() else: - return self.read_array(station=key.start) + return self.read_array(seq=key.start) - def read_array(self, record=0, station=None): + def read_array(self, record=0, seq=None): """ Read data array. :param record: (*int*) Record index. Default is 0. - :param station: (*int*) station index. Default is `None`, means all stations. + :param seq: (*int*) Sequence index. Default is `None`, means all sequences. :return: (*array*) Data array. """ a = self._parent_variable.read() @@ -692,10 +703,10 @@ class MemberVariable(DimVariable): if is_structure: r = NCUtil.readSequence(a, self.short_name) else: - if station is None: + if seq is None: r = NCUtil.readSequenceRecord(a, self.short_name, record, missing_value) else: - r = NCUtil.readSequenceStation(a, self.short_name, station) + r = NCUtil.readSequence(a, self.short_name, seq) if r is None: return None diff --git a/meteoinfo-lab/pylib/mipylib/numeric/core/_dtype$py.class b/meteoinfo-lab/pylib/mipylib/numeric/core/_dtype$py.class index f438282c40464308945b75bda9496fb81abdc480..3b097a5bcb575c72dad188173c7cee9894884dd5 100644 GIT binary patch delta 5636 zcmc&%dsr0L6+dTo7lw6&*x)`RE2+j9B_L?9z}jU&P1=rH zV`E}dlhGuaq)lQ?+cdEX$x5*X>mwSU@vYHX%|p{XjOOKAdhXn1_5#!NKkN4$<~YCK z`Q1DB-gC~~=J~kg5p?dj(fk$w$Fp0dI{z*w<;Y3Ii3vxn8ErO$*eT0m42(sa(<=l>7^Owz#aW+Dil9I}r z%3w)JT5f+L*VfIf2*~&_Lbd*)Jw>mM?yje*9(`_fuT=bn6H@S(3O>XqGnb;L1^m@) z4r#eL`fS%TMZcm^g8t%Qpt5GVjE|6Fm46mf{I!DfdDtSNw1vs|xPr6z``@&a%SD*) z)aSbL^{3oLu}c*EEoVK2kf2|P^XTYFcP*n2$>=j)fid`u6Q9Os^#V^;;tG6@E$Q<# z&Y)_4d0kb-U>Sd>Kjc}R^CG^)R_;fhW1QM}b}3dsl(?xVK+{)7(3#z{lJ>tiT2C9aZ28 z_uf;Wm3t=?jON}+1>?APO2Ka2dtbp+@}|(hA1c_JzdWO0Kkj|3;7IO$qF^!iK4T}- znCdyUL56pp?Y!ZA$u`sQzGfR^c;D)$90~gF1lbmim-N-$#>q=R*t_vHgcN;kw*#o&&DPU`dqMC_x4QC>a!d02~P1~eMinGA&@CF1mm;Z z-X=&7!Rtjnw>O(96_LiL0-j;w87BUjfX_1VIurj~vn0$i3Fibn(-g=w@h>d#EE7L( ziT5>e?SeqaH3#T#627#=b4~m!0WUD)^Gy6}0Uu!E1KMy6z7Yr!fr2&yd@JCEra+;I zU$n#rnfN6EA7aK24&#~&E?W|Ym;zS>e7Gqv)Wok^;=@h+nt+cq<41B_qeFCEAlzjV z?lJ{#SmL8iyj8&Gw8eXHP8$J{2o12aXgw^R=z9Z}(2>_Y_#{!+^?CGjw%Vbx`u996NyH0k4td#;-;!){hsRv+t9HM|d z`>j0UwGDJZbLUBvd2kAw1fN5Bcn%?aFg!l#js~}W_Io3`0yL94l|v)3^V5Ee@lq7w z3OKI807riQRhXPYGhWfFP?GHW;a+!immGvUDFUF7Y#_x`>16SGc6y!&4<&dQ!BkHT z_~G=yB0QSlF$7bQHQ)p3?ZodP_$LHY&%J=U1N8$E-V)NjyIpK$BZu3GRl9gwz^&TFHcLFxEw+p8 z#HwAqBM4YjW7r|!k@!eE*=dOj?PQlguxcl}E%8V@*(2bQZV+iFdo6LZTWIjEK(J~T z`z-NDyVx(_o!f;A4p`!C-GbW5L4jb^E)H4Zk#=!dz&o`II%G!#yi>Pe?c}H>A<{06 z3Ak0efa65y&@SeoQKa45+Ik9{>`Z#hgSbFXDM(IgYbWhWc^M?>wFS3n`zW9GlN}&C zNOp+qFxe5Zqh!a(j+33FoTIB`IGu~Y0XBL&fWGhq`vMRCJOs~X(X*bOMm~p7b5n{; z%JR`wZyDXyCKwqVX=oH5HQK1kCrF%br(yB?sZy|7F@(g=khljIP+wxT;w&4AWh{-v zN`?m)hO31KAJy-^J@Fo)&72{Lvm{KH-Oj=&8^WyXk}$^nFJUbrj52lC7@GGOTpBJx z&qG(X9JVEy>u`ByBfem>Z2)B~TaMq`Y_N&*?=U#g z0_UW|A?VmW_$M~vDRqRwlr@3+Q3tv6>R5xMiesMZK)S3>;3RR-iycTe)cZI|7KXdV zW~R|DyyI+b&~2wW}Rnw+9e<77o3 z_ps)stCgJFRp6#sbNi}QoEyuzcN-@stHXL_sD93h6BI|ZCwXw33l?#jYSQ%OgKp7Y zP+jJWMx4+wuAHukJkBl9%GypZr8@m=;{>WT=J9@_{THzVOh?xR$2m3L)Y2MpUS!PI zj7?qaf|Hz=VDcLAvCcF?Szf7$0!?2_DbKFH^s7Id@+##iyZ6}}a22~s0L0*5agBj$ z0Jl=wGB{y9v`qBi+I83%!Z(|6eP$E3aJ3lRi2n$yxeYRvEq6;3ZsU50+wq-n9T*p` zTzfLJvTu3S7!J1c2PD$7ifkrXkZd;Sv4e-v9E=~zTSB;VO$c|B?Iqhsc7W^<*%7j1 zWXH+=N%k+Y(_|lzeMEMa?B8Ucl6_A01=$6%ugJb3ySRqFmsW*c*Q5X>wbB&WZI3RA z_GnGAfz7-mw$gH#&`m)!8t9m8;v*U$00ej68;B0QN3^g delta 4107 zcmc&$dvuh=6~A{M$!7Bb-|i+G0=NsOX#&}VN(xa@Pz%MQ* zhyqH`f+L95wpvSTp;$$z7092=k$;A$8YZ4 zxxag7zM1*W?9PQ;zkuEQTI#nDQ5LssaKF|~JYZ&e$MXa?Irve7=F`?VYUGJxv03Sw z#FO1r&r<|@5_y_P@(dh4gNxlfolBUUQ>y08n(E?GCYN$k2HeeLub5Qg;tHnt!ouS6 z;;O>JlmUZ5o;_#Q)JhjuGL?xp9RX1m+e7U33=UMeDZq0K{(&C%F(gi_tSBofnp>2T zb*H$)`|8LiFhEsBepO|0`E(aQg<_=@kI74*le8V?(z&Ni$kF-wi&i3wh23dtgE$8_qf-dS5(JSa~vUW*JMY8dT@>- zlk0e9$V2rJayc3(kcU`=3Nj1rh50@%%dFvrIt4#E=A01mfgqn0A+)DNF51&#CfYNi z8tqxJ7VSB)AMJT@3GD?D9}MzE5ef!HdcY6`!2~f9b}noQ>`K@ruo2ibu!mvy!CryA z27;?Zm-hQc%-HdSI&5`aWkJy_sB97(ZR-4xI z>)+!9{tBfGa$cuw=b%Af(S!hB6Z2DZY^`NEer&>9|w z@Nk5o4izp+yT^uFZ>9NVtq;{&`C5FEp((p7#Iy4=f5T^>Aj}Dcf6Jk}NyVIiz zmZ1~sm7&__(-+x8YK_N|r@(MfF(3^rts(25Ap_3nw#BN-vw zkt=YKj0xRxCuj*ALRH-8ZMDZk)(|$`huTL`+n35u;(8f_pU31-@?ynEatI&)P!15G zLp~0RWjX%Q77ZUojbo^Z7owBOt+KMZw@{erzZDK!3b(3TjPcl4>%#Uq)I~0by*Pa% zFH5iGSM2r%G9Hr4vC?k0*Pw&h?lGy3U$5miZbZFZ&7g`pEYYHv7?o@H@lWzI9NyLW z8BXu!4qDAhnneYm&<{+;us#aQi1> zYHwj`K8`UbXmZ?5GCMkchURuPCu*+S!ZkYQ`pwCj8*kx;6FMgc%xRizSjfFP=cby) zn%l*~P3fH5-z?SKuA2K@b#gK~tXE&NLbJMADvpRI`FNCvUeGkNohFV9?HPW>^t5-> zGWO@jp)JE78J*!(1buE7Mo(3qOq@v%9n@5xrPkv&=kT`LtY}Aq$Xj*XerMaAv^zZ`v*#K$oVq8amk7)d zMfZ*lM|k`C2=4@T10MqWfCIqCz^A}L;P=2`;E%u&;LpG@;5cv+I1QWy&I1>LzpiKf z*9L!IY-1^@l}go9hbL9Otz^IPqK2DW@!9g#y(RR2iG<~JZsQcfZT~iI*A&9-J8^qf tq1<{H{--IBjj!W0+xQCq8}<&e^WUL>FCOH}{154j